def test_generate_recipe_with_missing_distdir(tmpdir, package): sys.argv = ['alnair', 'generate', 'recipe', package] from alnair import command command.generate.RECIPES_DIR = str(tmpdir) with pytest.raises(SystemExit): command.main() tmpdir.remove()
def test_generate_recipe_with_dry_run(tmpdir, package): sys.argv = ['alnair', '--dry-run', 'generate', 'recipe', package] tmpdir.mkdir('dist') from alnair import command command.generate.RECIPES_DIR = str(tmpdir) command.main() assert not tmpdir.join('dist', '%s.py' % package).check() tmpdir.remove()
def test_generate_template_with_dry_run(tmpdir, distname): sys.argv = ['alnair', '--dry-run', 'generate', 'template', distname, str(tmpdir)] from alnair.command import main main() assert not tmpdir.join('recipes').check() assert not tmpdir.join('recipes').join(distname).check() assert not tmpdir.join('recipes', distname, 'common.py').check() tmpdir.remove()
def test_generate_recipe_with_skip_if_file_exists(tmpdir, package): sys.argv = ['alnair', 'generate', 'recipe', package] tmpdir.mkdir('dist').join('%s.py' % package).write('testdata') from alnair import command command.generate.RECIPES_DIR = str(tmpdir) command.main() with open(str(tmpdir.join('dist', '%s.py' % package))) as f: actual = f.read() assert actual == 'testdata' tmpdir.remove()
def test_generate_recipe_with_single_dist(tmpdir, package): sys.argv = ['alnair', 'generate', 'recipe', package] tmpdir.mkdir('dist') from alnair import command command.generate.RECIPES_DIR = str(tmpdir) command.main() with open(str(tmpdir.join('dist', '%s.py' % package))) as f: actual = f.read() with open(os.path.join(templates_dir, 'recipe.py.template')) as f: expected = f.read() % dict(package=package) assert actual == expected tmpdir.remove()
def test_generate_template(tmpdir, distname): sys.argv = ['alnair', 'generate', 'template', distname, str(tmpdir)] from alnair.command import main main() with open(os.path.join(templates_dir, 'common.py.template')) as f: expected = f.read() % dict(distname=distname) with open(str(tmpdir.join('recipes').join(distname).join('common.py'))) \ as f: actual = f.read() assert tmpdir.join('recipes').join(distname).check() assert actual == expected tmpdir.remove()
def test_generate_recipe_with_multiple_dist(tmpdir, package, dists): sys.argv = ['alnair', 'generate', 'recipe', package] for d in dists: tmpdir.mkdir(d) from alnair import command command.generate.RECIPES_DIR = str(tmpdir) command.main() for d in dists: assert tmpdir.join(d, '%s.py' % package).check() with open(str(tmpdir.join(d, '%s.py' % package))) as f: actual = f.read() with open(os.path.join(templates_dir, 'recipe.py.template')) as f: expected = f.read() % dict(package=package) assert actual == expected tmpdir.remove()
def test_config_with_single_host_given(distname, package, host): sys.argv = ['alnair', 'config', '--host', host, distname, package] from alnair import Distribution with mock.patch('alnair.command.Distribution', spec=Distribution) as \ mock_dist: mock_inst = mock.MagicMock(spec=Distribution) mock_inst.__enter__.return_value = mock_inst mock_dist.return_value = mock_inst from fabric.state import _AttributeDict called_hosts = [] orig_setattr = _AttributeDict.__setattr__ _AttributeDict.__setattr__ = lambda self, n, v: called_hosts.append(v) from alnair.command import main main() try: assert mock_dist.call_count == 1 assert mock_dist.call_args == mock.call(distname) assert mock_inst.config.call_count == 1 assert mock_inst.config.call_args_list == \ [mock.call([package], dry_run=False)] assert called_hosts == [host] finally: _AttributeDict.__setattr__ = orig_setattr
def test_config_with_args_not_enough(args): sys.argv = ['alnair', 'config'] + args from alnair.command import main with pytest.raises(SystemExit): main()