def test_requirements(): cfg = Config(dict(test={'suite_name': 'pytest'}, pysetup={'intended_versions': ["27"], 'require': []})) cfg.load_extra() assert len(cfg._env.globals['pysetup'].requirements('install')) == 0 assert len(cfg._env.globals['pysetup'].requirements('test')) == 2
def test_require(opt): cfg = Config(dict(base={}, doc={'fmt': 'rst'})) assert len(tuple(opt.require(cfg))) == 0 cfg = Config(dict(base={}, doc={'fmt': 'md'})) assert len(tuple(opt.require(cfg))) == 1
def test_contributors_without_failed_request(mocker): commits = b'commit Author: a <toto@titi>\n, commit: Author: b <tata@titi>\n, commit: Author: b <tata@titi>\n' mocker.patch('subprocess.check_output', return_value=commits) cfg = Config(dict(git={})) cfg.load_extra() contributors = cfg._env.globals['git'].contributors assert len(contributors) == 2
def test_config_check_pkg_names(opt): for pkg in ('1mypkg', ' mypkg', '1', '1.mypkg', ' .mypkg', '.mypkg', 'None.mypkg', 'oa.o.mypkg'): cfg = Config( dict( base={ 'pkgname': pkg, 'namespace': None, 'namespace_method': "pkg_util", 'owner': 'moi', 'url': None })) assert 'base.pkgname' in opt.check(cfg) cfg = Config( dict( base={ 'pkgname': 'toto', 'namespace': pkg, 'namespace_method': "pkg_util", 'owner': 'moi', 'url': None })) assert 'base.namespace' in opt.check(cfg) cfg = Config( dict( base={ 'pkgname': 'toto', 'namespace': None, 'namespace_method': "toto", 'owner': 'moi', 'url': None })) assert 'base.namespace_method' in opt.check(cfg)
def test_install_example_ok_if_option_do_not_provide_examples(tmp_dir): pkg_cfg = deepcopy(DEFAULT_CFG) pkg_cfg['base'] = dict(pkgname='toto', namespace=None) cfg = Config(pkg_cfg) cfg.load_extra() ans = install_example_files('base', cfg, tmp_dir) assert not ans
def test_requirements(): cfg = Config(dict(test={'suite_name': 'pytest'}, reqs={'require': []})) cfg.load_extra() assert len(cfg._env.globals['reqs'].requirements('install')) == 0 assert len(cfg._env.globals['reqs'].requirements('test')) == 2 assert len(cfg._env.globals['reqs'].intents()) >= 4 assert len(cfg._env.globals['reqs'].conda_reqs('install')) >= 0 assert len(cfg._env.globals['reqs'].pip_reqs('install')) >= 0
def test_config_check_license_name_exists(opt): cfg = Config(dict(license={'name': "", 'year': 2015, 'organization': "oa", 'project': "project"})) assert 'license.name' in opt.check(cfg) cfg = Config(dict(license={'name': "tugudu", 'year': 2015, 'organization': "oa", 'project': "project"})) assert 'license.name' in opt.check(cfg)
def test_config_check_plugin_names(opt): cfg = Config(dict(plugin_project={'plugin_name': "walou"})) assert 'plugin_project.plugin_name' not in opt.check(cfg) for pkg in ('1mypkg', ' mypkg', '1', '1.mypkg', ' .mypkg', '.mypkg', 'None.mypkg', 'oa.o.mypkg'): cfg = Config(dict(plugin_project={'plugin_name': pkg})) assert 'plugin_project.plugin_name' in opt.check(cfg)
def test_pkg_env_loads_specific_handlers_from_options(): pkg_cfg = dict(DEFAULT_CFG) pkg_cfg['base'] = dict(pkgname="toto", namespace="nm", url=None, authors=[("moi", "moi@aussi")]) cfg = Config(pkg_cfg) cfg.load_extra() assert hasattr(cfg._env.globals['base'], "pkg_full_name")
def test_badge(): cfg = Config(dict(base={'pkgname': "pkg", 'namespace': None, "url": "http://toto"}, doc={'fmt': 'rst'}, pysetup={"intended_versions": ["27", "28"], 'require': []}, pypi={'classifiers': [], 'servers': [dict(name="pypi", url="https://upload.pypi.org/legacy/")]})) cfg.load_extra() assert ".. image:" in cfg._env.globals['pypi'].badge
def test_require(opt): cfg = Config(dict(test={'suite_name': 'pytest'})) opt.update_parameters(cfg) assert len(tuple(opt.require(cfg))) == 2 cfg = Config(dict(test={'suite_name': 'nose'})) opt.update_parameters(cfg) assert len(tuple(opt.require(cfg))) == 1
def test_install_example_do_not_complain_if_file_already_exists(tmp_dir): pkg_cfg = deepcopy(DEFAULT_CFG) pkg_cfg['base'] = dict(pkgname='toto', namespace=None) pkg_cfg['test'] = dict(suite_name='nose') cfg = Config(pkg_cfg) cfg.load_extra() assert install_example_files('test', cfg, tmp_dir) assert install_example_files('test', cfg, tmp_dir)
def test_badge(): cfg = Config( dict(appveyor={'token': "ae34f"}, doc={'fmt': 'rst'}, github={ 'owner': "moi", 'project': "project" })) cfg.load_extra() assert ".. image:" in cfg._env.globals['appveyor'].badge
def test_require(): cfg = Config(dict(coverage={}, test={'suite_name': 'pytest'})) assert len(require('option', cfg)) == 1 assert len(require('setup', cfg)) == 0 assert len(require('install', cfg)) == 0 assert len(require('dvlpt', cfg)) == 2 cfg = Config(dict(coverage={}, test={'suite_name': 'nose'})) assert len(require('dvlpt', cfg)) == 1
def test_badge(): cfg = Config( dict(landscape={}, doc={'fmt': 'rst'}, github={ 'owner': "moi", 'project': "project" })) cfg.load_extra() assert ".. image:" in cfg._env.globals['landscape'].badge
def test_require(): cfg = Config(dict(base={}, doc={'fmt': 'rst'})) assert len(require('option', cfg)) == 1 assert len(require('setup', cfg)) == 0 assert len(require('install', cfg)) == 0 assert len(require('dvlpt', cfg)) == 0 cfg = Config(dict(base={}, doc={'fmt': 'md'})) assert len(require('dvlpt', cfg)) == 1
def test_install_example_copy_binary_files(tmp_dir): pkg_cfg = deepcopy(DEFAULT_CFG) pkg_cfg['base'] = dict(pkgname='toto', namespace=None) pkg_cfg['data'] = dict() cfg = Config(pkg_cfg) cfg.load_extra() assert len(listdir(tmp_dir)) == 0 install_example_files('data', cfg, tmp_dir) assert len(listdir(tmp_dir)) > 0 assert exists(pj(tmp_dir, "src", "toto_data", "ext_data.png"))
def test_src_dir(): cfg = {} with pytest.raises(KeyError): pkg_full_name(Config(cfg)) cfg['base'] = dict(pkgname='toto', namespace=None) dir1 = src_dir(Config(cfg)) cfg['base']['namespace'] = 'oa' dir2 = src_dir(Config(cfg)) assert dir1 != dir2
def test_pkg_full_name(): cfg = {} with pytest.raises(KeyError): pkg_full_name(Config(cfg)) cfg['base'] = dict(pkgname='toto', namespace=None) name1 = pkg_full_name(Config(cfg)) cfg['base']['namespace'] = 'oa' name2 = pkg_full_name(Config(cfg)) assert name1 != name2
def test_install_example_copy_binary_files(tmp_dir): pkg_cfg = deepcopy(DEFAULT_CFG) pkg_cfg['base'] = dict(pkgname='toto', namespace=None) pkg_cfg['data'] = dict(filetype=[".png", ".ui"], use_ext_dir=True) cfg = Config(pkg_cfg) cfg.load_extra() assert len(tuple(tmp_dir.iterdir())) == 0 install_example_files('data', cfg, tmp_dir) assert len(tuple(tmp_dir.iterdir())) > 0 assert (tmp_dir / "src/toto_data/ext_data.png").exists()
def test_auto_classifiers(): cfg = Config(dict(base={'pkgname': "pkg", 'namespace': None, "url": "http://toto"}, doc={'fmt': 'rst'}, pysetup={"intended_versions": ["27", "28"], 'require': []}, pypi={'classifiers': [], 'servers': []})) cfg.load_extra() section = cfg._env.globals['pypi'] assert "Programming Language :: Python" in section.auto_classifiers assert "Programming Language :: Python :: 2.7" in section.auto_classifiers
def test_install_example_handles_namespace(tmp_dir): pkg_cfg = deepcopy(DEFAULT_CFG) pkg_cfg['base'] = dict(pkgname='toto', namespace='oa', namespace_method='pkg_utils') pkg_cfg['test'] = dict(suite_name='nose') cfg = Config(pkg_cfg) cfg.load_extra() install_example_files('test', cfg, tmp_dir) assert exists(pj(tmp_dir, "test", "test_example.py")) assert not exists(pj(tmp_dir, "src", "toto", "example.py")) assert exists(pj(tmp_dir, "src", "oa", "toto", "example.py"))
def test_install_example_handles_namespace(tmp_dir): pkg_cfg = deepcopy(DEFAULT_CFG) pkg_cfg['base'] = dict(pkgname='toto', namespace='oa') pkg_cfg['src'] = dict(namespace_method='pkg_utils') pkg_cfg['test'] = dict(suite_name='nose') cfg = Config(pkg_cfg) cfg.load_extra() install_example_files('test', cfg, tmp_dir) assert (tmp_dir / "test/test_example.py").exists() assert not (tmp_dir / "src/toto/example.py").exists() assert (tmp_dir / "src/oa/toto/example.py").exists()
def test_install_example_copy_files(tmp_dir): pkg_cfg = deepcopy(DEFAULT_CFG) pkg_cfg['base'] = dict(pkgname='toto', namespace=None) pkg_cfg['test'] = dict(suite_name='nose') cfg = Config(pkg_cfg) cfg.load_extra() assert len(tuple(tmp_dir.iterdir())) == 0 install_example_files('test', cfg, tmp_dir) assert len(tuple(tmp_dir.iterdir())) > 0 assert (tmp_dir / "src/toto/example.py").exists() assert (tmp_dir / "test/test_example.py").exists()
def test_install_example_copy_files(tmp_dir): pkg_cfg = deepcopy(DEFAULT_CFG) pkg_cfg['base'] = dict(pkgname='toto', namespace=None) pkg_cfg['test'] = dict(suite_name='nose') cfg = Config(pkg_cfg) cfg.load_extra() assert len(listdir(tmp_dir)) == 0 install_example_files('test', cfg, tmp_dir) assert len(listdir(tmp_dir)) > 0 assert exists(pj(tmp_dir, "src", "toto", "example.py")) assert exists(pj(tmp_dir, "test", "test_example.py"))
def test_src_pth(): cfg = Config({ 'base': { 'pkgname': 'toto', 'namespace': None }, 'src': { 'namespace_method': 'pkg_util' } }) cfg.load_extra() assert cfg._env.globals['src'].src_pth == "src/toto"
def test_config_check_version_numbers_are_valid(opt): cfg = Config(dict(version={'major': "", 'minor': "", 'post': ""})) assert 'version.major' in opt.check(cfg) assert 'version.minor' in opt.check(cfg) assert 'version.post' in opt.check(cfg) cfg = Config(dict(version={'major': "a", 'minor': "a", 'post': "a"})) assert 'version.major' in opt.check(cfg) assert 'version.minor' in opt.check(cfg) assert 'version.post' in opt.check(cfg) cfg = Config(dict(version={'major': "1", 'minor': "1", 'post': "1"})) assert 'version.major' in opt.check(cfg) assert 'version.minor' in opt.check(cfg) assert 'version.post' in opt.check(cfg) cfg = Config(dict(version={'major': 1, 'minor': 0, 'post': "2.dev"})) assert 'version.post' in opt.check(cfg)
def test_pkg_url_look_multiple_places(): tpl_cfg = dict(base={'pkgname': 'toto', 'namespace': 'oa', 'url': None}, doc={'fmt': 'rst'}, github={'url': None, 'project': 'project', 'owner': 'toto'}, gitlab={'url': None, 'project': 'project', 'owner': 'toto'}, pypi={'classifiers': [], 'servers': [dict(name="pypi", url="https://upload.pypi.org/legacy/")]}, readthedocs={'project': 'project'}, pysetup={'intended_versions': ["27"]}) for name in ("base", "github", "gitlab"): # TODO, "pypi", "readthedocs"): loc_cfg = deepcopy(tpl_cfg) loc_cfg[name]['url'] = name cfg = Config(loc_cfg) cfg.load_extra() assert cfg._env.globals['pysetup'].pkg_url == name
def test_config_check_intended_version_exists(): cfg = Config(dict(pysetup={'intended_versions': [], 'require': []})) assert 'pysetup.intended_versions' in check(cfg) assert 'pysetup.require' not in check(cfg) cfg = Config( dict( pysetup={ 'intended_versions': ["27"], 'require': [{ 'pkg_mng': 'walou', 'name': 'numpy' }] })) assert 'pysetup.require' in check(cfg)
def test_require(): cfg = Config(dict(notebook={})) assert len(require('option', cfg)) == 1 assert len(require('setup', cfg)) == 0 assert len(require('install', cfg)) == 0 assert len(require('dvlpt', cfg)) == 1