Package crate.elasticsearch.doctests

Source Code of crate.elasticsearch.doctests.DocTest

package crate.elasticsearch.doctests;

import static com.github.tlrx.elasticsearch.test.EsSetup.createIndex;
import static com.github.tlrx.elasticsearch.test.EsSetup.deleteAll;
import static com.github.tlrx.elasticsearch.test.EsSetup.fromClassPath;
import junit.framework.TestCase;

import org.elasticsearch.common.settings.ImmutableSettings;
import org.elasticsearch.common.settings.Settings;
import org.junit.After;
import org.junit.Before;
import org.python.core.Py;
import org.python.core.PyArray;
import org.python.core.PyList;
import org.python.core.PyString;
import org.python.core.PySystemState;
import org.python.util.PythonInterpreter;

public class DocTest extends TestCase {

    StoreEsSetup esSetup, esSetup2;

    private static final String PY_TEST = "src/test/python/tests.py";

    private PythonInterpreter interp;
    private PySystemState sys;

    private void resetInterpreter() {
        interp = new PythonInterpreter(null, new PySystemState());
        sys = Py.getSystemState();
    }

    private void execFile(String filePath, String... arguments) {
        interp.cleanup();
        interp.set("__file__", filePath);
        sys.argv = new PyList(new PyString[]{new PyString(filePath)});
        sys.argv.extend(new PyArray(PyString.class, arguments));
        interp.execfile(filePath);
    }

    private void execDocFile(String name) {
        execFile(PY_TEST, name);
    }

    @Before
    public void setUp() {
        if (interp == null) {
            resetInterpreter();
        }
        Settings s1 = ImmutableSettings.settingsBuilder()
                .put("cluster.name", "a")
                .put("node.local", false)
                .build();

        esSetup = new StoreEsSetup(s1);
        esSetup.execute(deleteAll(), createIndex("users").withSettings(
                fromClassPath("essetup/settings/test_a.json")).withMapping("d",
                fromClassPath("essetup/mappings/test_a.json")).withData(
                fromClassPath("essetup/data/test_a.json")));
        esSetup.client().admin().indices().prepareRefresh("users").execute().actionGet();

        Settings s2 = ImmutableSettings.settingsBuilder()
                .put("cluster.name", "b")
                .put("node.local", false)
                .build();
        esSetup2 = new StoreEsSetup(s2);
        esSetup2.execute(deleteAll());
    }

    @After
    public void tearDown() {
        esSetup.terminate();
        if (esSetup2 != null) {
            esSetup2.terminate();
        }
    }

    public void testSearchInto() throws Exception {
        execDocFile("search_into.rst");
    }

    public void testReindex() throws Exception {
        execDocFile("reindex.rst");
    }

}
TOP

Related Classes of crate.elasticsearch.doctests.DocTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.