Ejemplo n.º 1
0
 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()
Ejemplo n.º 2
0
 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()
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
 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()
Ejemplo n.º 5
0
 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()
Ejemplo n.º 6
0
def retreive_metadata():
    """retrieve metadata.

    :rtype: bootstrap_py.classifiers.Classifiers
    :return: Classifiers()
    """
    return Classifiers()
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
 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())
Ejemplo n.º 10
0
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__
Ejemplo n.º 11
0
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__
Ejemplo n.º 12
0
 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)
Ejemplo n.º 13
0
 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)
Ejemplo n.º 14
0
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()
Ejemplo n.º 15
0
 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')
Ejemplo n.º 16
0
 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)