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)
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__