def __init__(self, args): """Initialize Package.""" self.metadata = Classifiers() if hasattr(args, '__dict__'): for name, value in vars(args).items(): self._set_param(name, value) self._check_or_set_default_params()
def setUp(self): """Prepare test data.""" with requests_mock.Mocker() as mock: with open('bootstrap_py/data/classifiers.txt') as fobj: data = fobj.read() mock.get(Classifiers.url, text=data, status_code=200) self.data = Classifiers()
def main(): """main function.""" try: metadata = Classifiers() args = parse_options(metadata) if args.licenses: _pp(metadata.licenses_desc()) sys.exit(0) pypi.package_existent(args.name) pkg_data = control.PackageData(args) pkg_tree = control.PackageTree(pkg_data) pkg_tree.generate() pkg_tree.move() except (RuntimeError, BackendFailure, Conflict) as exc: sys.stderr.write('{0}\n'.format(exc)) sys.exit(1)
def setUp(self): """Prepare test data.""" with requests_mock.Mocker() as mock: with open("bootstrap_py/data/classifiers.txt") as fobj: data = fobj.read() mock.get(Classifiers.url, text=data, status_code=200) self.data = Classifiers()
def retreive_metadata(): """retrieve metadata. :rtype: bootstrap_py.classifiers.Classifiers :return: Classifiers() """ return Classifiers()
class ClassifiersTests(unittest.TestCase): """bootstrap_py.classifiers.Classifiers tests.""" def setUp(self): """Prepare test data.""" with requests_mock.Mocker() as mock: with open("bootstrap_py/data/classifiers.txt") as fobj: data = fobj.read() mock.get(Classifiers.url, text=data, status_code=200) self.data = Classifiers() def test_status(self): """respond dict status.""" self.assertEqual(len(self.data.status().keys()), 7) self.assertEqual(len(self.data.status().values()), 7) def test_licenses(self): """respond dict licenses.""" self.assertEqual(len(self.data.licenses().keys()), 49) self.assertEqual(len(self.data.licenses().values()), 49) def test_licenses_desc(self): """respond dic licenses description.""" self.assertEqual(len(self.data.licenses_desc().keys()), 49) self.assertEqual(len(self.data.licenses_desc().values()), 49) for val in self.data.licenses_desc().values(): self.assertTrue(Classifiers.prefix_lic not in val)
class ClassifiersTests(unittest.TestCase): """bootstrap_py.classifiers.Classifiers tests.""" def setUp(self): """Prepare test data.""" with requests_mock.Mocker() as mock: with open('bootstrap_py/data/classifiers.txt') as fobj: data = fobj.read() mock.get(Classifiers.url, text=data, status_code=200) self.data = Classifiers() def test_status(self): """respond dict status.""" self.assertEqual(len(self.data.status().keys()), 7) self.assertEqual(len(self.data.status().values()), 7) def test_licenses(self): """respond dict licenses.""" self.assertEqual(len(self.data.licenses().keys()), 49) self.assertEqual(len(self.data.licenses().values()), 49) def test_licenses_desc(self): """respond dic licenses description.""" self.assertEqual(len(self.data.licenses_desc().keys()), 49) self.assertEqual(len(self.data.licenses_desc().values()), 49) for val in self.data.licenses_desc().values(): self.assertTrue(Classifiers.prefix_lic not in val)
def test_setoption_version(self): """parser add_argument version.""" commands.setoption(self.parser, Classifiers()) with self.assertRaises(SystemExit) as exc: self.parser.parse_args('-v'.split()) self.assertEqual(0, exc.exception.code) if sys.version_info > (3, 4): self.assertEqual(__version__ + '\n', sys.stdout.getvalue()) else: self.assertEqual(__version__ + '\n', sys.stderr.getvalue())
class PackageData(object): """Package meta data class.""" #: Configured the default "version" of setup.setup(). default_version = '0.1.0' #: Users should rewrite parameters after they generate Python package. warning_message = '##### ToDo: Rewrite me #####' def __init__(self, args): """Initialize Package.""" self.metadata = Classifiers() if hasattr(args, '__dict__'): for name, value in vars(args).items(): self._set_param(name, value) self._check_or_set_default_params() def _set_param(self, name, value): """set name:value property to Package object.""" if name == 'status': setattr(self, name, self.metadata.status().get(value)) elif name == 'license': setattr(self, name, self.metadata.licenses().get(value)) elif name == 'name': setattr(self, name, value) setattr(self, 'module_name', value.replace('-', '_')) else: setattr(self, name, value) def _check_or_set_default_params(self): """check key and set default vaule when it does not exists.""" if not hasattr(self, 'date'): self._set_param('date', datetime.utcnow().strftime('%Y-%m-%d')) if not hasattr(self, 'version'): self._set_param('version', self.default_version) # pylint: disable=no-member if not hasattr(self, 'description') or self.description is None: getattr(self, '_set_param')('description', self.warning_message) def to_dict(self): """Convert the package data to dict.""" return self.__dict__
def test_setoption_minimum_username(self): """parse argument minimum with username.""" commands.setoption(self.parser, Classifiers()) args = 'create -a "Alice Forest" -e [email protected] -U alice foo' self.assertEqual('foo', self.parser.parse_args(shlex.split(args)).name) self.assertEqual('Alice Forest', self.parser.parse_args(shlex.split(args)).author) self.assertEqual('*****@*****.**', self.parser.parse_args(shlex.split(args)).email) self.assertEqual('alice', self.parser.parse_args(shlex.split(args)).username)
def test_setoption_minimum_url(self): """parse argument minimum with url.""" commands.setoption(self.parser, Classifiers()) args = ('create -a "Alice Forest" -e [email protected] ' '-u http://example.org foo') self.assertEqual('foo', self.parser.parse_args(shlex.split(args)).name) self.assertEqual('Alice Forest', self.parser.parse_args(shlex.split(args)).author) self.assertEqual('*****@*****.**', self.parser.parse_args(shlex.split(args)).email) self.assertEqual('http://example.org', self.parser.parse_args(shlex.split(args)).url)
def stub_request_metadata(badge=False): """Stub request classifiers, badge.""" if badge: with requests_mock.Mocker() as mock: with open('bootstrap_py/tests/data/badge.svg') as fobj: svg_data = fobj.read() mock.get(Update.badge_url, text=svg_data, status_code=200) with requests_mock.Mocker() as mock: with open('bootstrap_py/data/classifiers.txt') as fobj: data = fobj.read() mock.get(Classifiers.url, text=data, status_code=200) return Classifiers()
def setUp(self): """Prepare tests.""" with requests_mock.Mocker() as mock: with open('bootstrap_py/data/classifiers.txt') as fobj: data = fobj.read() mock.get(Classifiers.url, text=data, status_code=200) self.metadata = Classifiers() self.parser = argparse.ArgumentParser(description='usage') self.capture = sys.stdout self.capture_error = sys.stderr sys.stdout = six.StringIO() sys.stderr = six.StringIO() self.outdir = tempfile.mkdtemp(suffix='-bootstrap-py-test')
def test_setoption_with_extras(self): """parse argument extras.""" commands.setoption(self.parser, Classifiers()) args = ('create -a "Alice Forest" -e [email protected] -U alice ' '-l LGPLv3+ -s Beta foo') self.assertEqual('foo', self.parser.parse_args(shlex.split(args)).name) self.assertEqual('Alice Forest', self.parser.parse_args(shlex.split(args)).author) self.assertEqual('*****@*****.**', self.parser.parse_args(shlex.split(args)).email) self.assertEqual('alice', self.parser.parse_args(shlex.split(args)).username) self.assertEqual('LGPLv3+', self.parser.parse_args(shlex.split(args)).license) self.assertEqual('Beta', self.parser.parse_args(shlex.split(args)).status)