示例#1
0
def test_exec_type(tmpdir):
    from jina.executors.indexers import BaseIndexer
    assert 'BaseIndexer' in BaseExecutor._registered_class

    # init from YAML should be okay as well
    BaseExecutor.load_config('BaseIndexer')

    BaseIndexer().save_config(os.path.join(tmpdir, 'tmp.yml'))
    with open(os.path.join(tmpdir, 'tmp.yml')) as fp:
        _ = JAML.load(fp)

    def assert_bi():
        b = BaseIndexer(1)
        b.save_config(os.path.join(tmpdir, 'tmp.yml'))
        with open(os.path.join(tmpdir, 'tmp.yml')) as fp:
            b = JAML.load(fp)
            assert b.a == 1

    # we override BaseIndexer now, without force it shall not store all init values
    class BaseIndexer(BaseExecutor):
        def __init__(self, a=0):
            super().__init__()
            self.a = a

    with pytest.raises(AssertionError):
        assert_bi()

    class BaseIndexer(BaseExecutor):
        force_register = True

        def __init__(self, a=0):
            super().__init__()
            self.a = a

    assert_bi()
示例#2
0
    def assert_bi():
        b = BaseIndexer(1)

        b.save_config(os.path.join(tmpdir, 'tmp.yml'))
        with open(os.path.join(tmpdir, 'tmp.yml')) as fp:
            b = JAML.load(fp)
            assert b.a == 1
示例#3
0
def test_exec_type(tmpdir, f_register, unregister):
    from jina.executors.indexers import BaseIndexer

    assert 'jina.executors.indexers.BaseIndexer' in BaseExecutor._registered_class

    # init from YAML should be okay as well
    BaseExecutor.load_config('BaseIndexer')

    BaseIndexer().save_config(os.path.join(tmpdir, 'tmp.yml'))
    with open(os.path.join(tmpdir, 'tmp.yml')) as fp:
        _ = JAML.load(fp)

    def assert_bi():
        b = BaseIndexer(1)

        b.save_config(os.path.join(tmpdir, 'tmp.yml'))
        with open(os.path.join(tmpdir, 'tmp.yml')) as fp:
            b = JAML.load(fp)
            assert b.a == 1

    # By this point, BaseIndexer has not registered in reg_cls_set yet and store_init_kwargs will be executed
    class BaseIndexer(BaseExecutor):
        def __init__(self, a=0, *args, **kwargs):
            super().__init__(*args, **kwargs)
            self.a = a

    assert_bi()

    class BaseIndexer(BaseExecutor):
        force_register = f_register

        def __init__(self, a=0, *args, **kwargs):
            super().__init__(*args, **kwargs)
            self.a = a

    if f_register:
        assert_bi()
    else:
        with pytest.raises(AssertionError):
            assert_bi()
示例#4
0
def assert_bi():
    b = BaseIndexer(1)
    b.save_config('tmp.yml')
    with open('tmp.yml') as fp:
        b = yaml.load(fp)
        assert b.a == 1
示例#5
0
import pytest

from jina.executors import BaseExecutor
from jina.executors.indexers import BaseIndexer
# BaseIndexer is already registered
from jina.helper import yaml

assert 'BaseIndexer' in BaseExecutor._registered_class

# init from YAML should be okay as well
BaseExecutor.load_config('BaseIndexer')

BaseIndexer().save_config('tmp.yml')
with open('tmp.yml') as fp:
    s = yaml.load(fp)


def assert_bi():
    b = BaseIndexer(1)
    b.save_config('tmp.yml')
    with open('tmp.yml') as fp:
        b = yaml.load(fp)
        assert b.a == 1


# we override BaseIndexer now, without force it shall not store all init values
class BaseIndexer(BaseExecutor):
    def __init__(self, a=0):
        super().__init__()
        self.a = a
示例#6
0
 def assert_bi():
     b = BaseIndexer(1)
     b.save_config(str(tmpdir / 'tmp.yml'))
     with open(tmpdir / 'tmp.yml') as fp:
         b = JAML.load(fp)
         assert b.a == 1