def test_import_module_from_data_dir(monkeypatch): real_data_dir = pkunit.data_dir() fake_data_dir = None def mock_data_dir(): return fake_data_dir monkeypatch.setattr(pkunit, 'data_dir', mock_data_dir) fake_data_dir = str(real_data_dir.join('import1')) assert 'imp1' == pkunit.import_module_from_data_dir('p1').v, \ 'import1/p1 should be from "imp1"' fake_data_dir = str(real_data_dir.join('import2')) assert 'imp2' == pkunit.import_module_from_data_dir('p1').v, \ 'import2/p1 should be from "imp2"'
def test_module_basename(): p1 = pkunit.import_module_from_data_dir('p1') assert pkinspect.module_basename(p1) == 'p1' m1 = pkunit.import_module_from_data_dir('p1.m1') assert pkinspect.module_basename(m1) == 'm1' assert pkinspect.module_basename(m1.C) == 'm1' assert pkinspect.module_basename(m1.C()) == 'm1' assert pkinspect.module_basename(m1) == 'm1' assert pkinspect.module_basename(m1.C) == 'm1' assert pkinspect.module_basename(m1.C()) == 'm1' p2 = pkunit.import_module_from_data_dir('p1.p2') assert pkinspect.module_basename(p2) == 'p2' m2 = pkunit.import_module_from_data_dir('p1.p2.m2') assert pkinspect.module_basename(m2) == 'm2'
def test_import_module_from_data_dir(monkeypatch): real_data_dir = pkunit.data_dir() fake_data_dir = None def mock_data_dir(): return fake_data_dir monkeypatch.setattr(pkunit, 'data_dir', mock_data_dir) fake_data_dir = str(real_data_dir.join('import1')) assert 'imp1' == pkunit.import_module_from_data_dir('p1').v, \ 'import1/p1 should be from "imp1"' fake_data_dir = str(real_data_dir.join('import2')) assert 'imp2' == pkunit.import_module_from_data_dir('p1').v, \ 'import2/p1 should be from "imp2"'
def test_module_basename(): p1 = pkunit.import_module_from_data_dir('p1') assert pkinspect.module_basename(p1) == 'p1' m1 = pkunit.import_module_from_data_dir('p1.m1') assert pkinspect.module_basename(m1) == 'm1' assert pkinspect.module_basename(m1.C) == 'm1' assert pkinspect.module_basename(m1.C()) == 'm1' assert pkinspect.module_basename(m1) == 'm1' assert pkinspect.module_basename(m1.C) == 'm1' assert pkinspect.module_basename(m1.C()) == 'm1' p2 = pkunit.import_module_from_data_dir('p1.p2') assert pkinspect.module_basename(p2) == 'p2' m2 = pkunit.import_module_from_data_dir('p1.p2.m2') assert pkinspect.module_basename(m2) == 'm2'
def test_load_resource(): """Test file can be read""" from pykern import pkunit from pykern import pkyaml p1 = pkunit.import_module_from_data_dir('p1') assert 'v2' == p1.y['f2'], \ 'Resource should be loaded relative to root package of caller'
def test_is_caller_main(): m1 = pkunit.import_module_from_data_dir('p1.m1') assert not m1.is_caller_main(), \ 'When not called from main, is_caller_main is False' with pkio.save_chdir(pkunit.data_dir()): subprocess.check_call([ sys.executable, '-c', 'from p1 import m1; assert m1.is_caller_main()' ])
def test_is_caller_main(): m1 = pkunit.import_module_from_data_dir('p1.m1') assert not m1.is_caller_main(), \ 'When not called from main, is_caller_main is False' with pkio.save_chdir(pkunit.data_dir()): subprocess.check_call([ sys.executable, '-c', 'from p1 import m1; assert m1.is_caller_main()'])
def test_render_resource(): t1 = pkunit.import_module_from_data_dir('t1') with pkunit.save_chdir_work(): out = 'out' expect = '\n!v1!\n' assert expect == t1.render(None), \ 'render_resource should return rendered template' assert not glob.glob('*'), \ 'render_resource should not create any files' assert expect == t1.render(out), \ 'render_resource should return string even when writing to file' assert expect == pkio.read_text(out), \ 'With out, render_resource should write file'
def test_caller(): import inspect m1 = pkunit.import_module_from_data_dir('p1.m1') c = m1.caller() expect = inspect.currentframe().f_lineno - 1 assert expect == c.lineno, \ '{}: unexpected lineno, should be {}'.format(c.lineno, expect) expect = 'test_caller' assert expect == c.name, \ '{}: expected function name {}'.format(c.name, expect) this_module = sys.modules[__name__] c = m1.caller(ignore_modules=[this_module]) assert expect != c.name, \ '{}: should not be {}'.format(c.name, expect) my_caller = pkinspect.caller() expect = my_caller._module assert expect == c._module, \ '{}: should be {}'.format(c._module, expect)
def test_caller(): import inspect m1 = pkunit.import_module_from_data_dir('p1.m1') c = m1.caller() expect = inspect.currentframe().f_lineno - 1 assert expect == c.lineno, \ '{}: unexpected lineno, should be {}'.format(c.lineno, expect) expect = 'test_caller' assert expect == c.name, \ '{}: expected function name {}'.format(c.name, expect) this_module = sys.modules[__name__] c = m1.caller(ignore_modules=[this_module]) assert expect != c.name, \ '{}: should not be {}'.format(c.name, expect) my_caller = pkinspect.caller() expect = my_caller._module assert expect == c._module, \ '{}: should be {}'.format(c._module, expect)
def test_load_resource(): """Test file can be read""" p1 = pkunit.import_module_from_data_dir('p1') assert 'v2' == p1.y['f2'], \ 'Resource should be loaded relative to root package of caller'
def test_caller_module(): m1 = pkunit.import_module_from_data_dir('p1.m1') assert __name__ == m1.caller_module().__name__, \ 'caller_module should return this module'
def test_root_pkg(): m2 = pkunit.import_module_from_data_dir('p1.p2.m2') assert pkinspect.root_package(m2) == 'p1'
def test_submodule_name(): m2 = pkunit.import_module_from_data_dir('p1.p2.m2') assert pkinspect.submodule_name(m2) == 'p2.m2'
def test_submodule_name(): m2 = pkunit.import_module_from_data_dir('p1.p2.m2') assert pkinspect.submodule_name(m2) == 'p2.m2'
def test_caller_module(): m1 = pkunit.import_module_from_data_dir('p1.m1') assert __name__ == m1.caller_module().__name__, \ 'caller_module should return this module'
def test_root_pkg(): m2 = pkunit.import_module_from_data_dir('p1.p2.m2') assert pkinspect.root_package(m2) == 'p1'