Esempio n. 1
0
    def test_existing_resource(self):
        f = finder('foo')
        r = f.find('foo_resource.bin')
        self.assertTrue(r)
        self.assertEqual(r.bytes, b'more_data\n')
        self.assertEqual(r.size, 10)
        stream = r.as_stream()
        self.assertEqual(stream.read(), b'more_data\n')
        stream.close()
        # can access subpackage bar's resources using subdir path ...
        r = f.find('bar/bar_resource.bin')
        self.assertTrue(r)
        self.assertFalse(r.is_container)
        self.assertEqual(r.bytes, b'data\n')
        self.assertEqual(r.size, 5)
        stream = r.as_stream()
        self.assertEqual(stream.read(), b'data\n')
        stream.close()

        r = f.find('bar')
        self.assertTrue(r)
        self.assertTrue(r.is_container)
        self.assertRaises(AttributeError, attrgetter('bytes'), r)
        self.assertRaises(AttributeError, attrgetter('size'), r)
        self.assertRaises(AttributeError, attrgetter('file_path'), r)
        f = finder('foo.bar')
        r = f.find('bar_resource.bin')
        self.assertTrue(r)
        self.assertEqual(r.bytes, b'data\n')
        self.assertEqual(r.size, 5)
        stream = r.as_stream()
        self.assertEqual(stream.read(), b'data\n')
        stream.close()
Esempio n. 2
0
    def test_existing_resource(self):
        f = finder('foo')
        r = f.find('foo_resource.bin')
        self.assertTrue(r)
        self.assertEqual(r.bytes, b'more_data\n')
        self.assertEqual(r.size, 10)
        stream = r.as_stream()
        self.assertEqual(stream.read(), b'more_data\n')
        stream.close()
        # can access subpackage bar's resources using subdir path ...
        r = f.find('bar/bar_resource.bin')
        self.assertTrue(r)
        self.assertFalse(r.is_container)
        self.assertEqual(r.bytes, b'data\n')
        self.assertEqual(r.size, 5)
        stream = r.as_stream()
        self.assertEqual(stream.read(), b'data\n')
        stream.close()

        r = f.find('bar')
        self.assertTrue(r)
        self.assertTrue(r.is_container)
        self.assertRaises(AttributeError, attrgetter('bytes'), r)
        self.assertRaises(AttributeError, attrgetter('size'), r)
        self.assertRaises(AttributeError, attrgetter('file_path'), r)
        f = finder('foo.bar')
        r = f.find('bar_resource.bin')
        self.assertTrue(r)
        self.assertEqual(r.bytes, b'data\n')
        self.assertEqual(r.size, 5)
        stream = r.as_stream()
        self.assertEqual(stream.read(), b'data\n')
        stream.close()
Esempio n. 3
0
 def test_dir_in_zip(self):
     sys.path[0] = '%s/lib' % os.path.join(HERE, 'bar.zip')
     f = finder('barbar')
     self.assertIsNone(f.find('readme.txt'))
     r = f.find('bar_resource.bin')
     self.assertTrue(r)
     self.assertFalse(r.is_container)
     f = finder('barbar.baz')
     r = f.find('baz_resource.bin')
     self.assertTrue(r)
     self.assertFalse(r.is_container)
Esempio n. 4
0
 def test_dir_in_zip(self):
     sys.path[0] = '%s/lib' % os.path.join(HERE, 'bar.zip')
     f = finder('barbar')
     self.assertIsNone(f.find('readme.txt'))
     r = f.find('bar_resource.bin')
     self.assertTrue(r)
     self.assertFalse(r.is_container)
     f = finder('barbar.baz')
     r = f.find('baz_resource.bin')
     self.assertTrue(r)
     self.assertFalse(r.is_container)
Esempio n. 5
0
 def test_root_resources(self):
     f = finder('foo')
     r = f.find('')
     self.assertTrue(r)
     self.assertTrue(r.is_container)
     expected = set(('foo_resource.bin', 'bar', '__init__.py'))
     self.assertEqual(r.resources, expected)
Esempio n. 6
0
 def test_iterator(self):
     f = finder('foofoo')
     iterator = f.iterator('')
     actual = set([(r.name, r.is_container) for r in iterator])
     expected = set([('', True),
                     ('nested/nested_resource.bin', False),
                     ('bar', True),
                     ('__init__.py', False),
                     ('nested', True),
                     ('bar/bar_resource.bin', False),
                     ('bar/__init__.py', False),
                     ('bar/baz.py', False),
                     ('foo_resource.bin', False),
                    ])
     self.assertEqual(actual, expected)
     iterator = f.iterator('bar')
     actual = set([(r.name, r.is_container) for r in iterator])
     expected = set([
                     ('bar/baz.py', False),
                     ('bar', True),
                     ('bar/bar_resource.bin', False),
                     ('bar/__init__.py', False)
                    ])
     self.assertEqual(actual, expected)
     iterator = f.iterator('bar/bar_resource.bin')
     actual = set([(r.name, r.is_container) for r in iterator])
     self.assertEqual(actual, set([('bar/bar_resource.bin', False)]))
Esempio n. 7
0
    def test_filepath(self):
        path = os.path.join(HERE, 'foo.zip')
        sys.path.insert(0, path)
        self.addCleanup(sys.path.remove, path)
        sys.path.insert(0, HERE)
        self.addCleanup(sys.path.remove, HERE)
        path = '%s/lib' % os.path.join(HERE, 'bar.zip')
        sys.path.insert(0, path)
        self.addCleanup(sys.path.remove, path)

        cases = (
            ('foo', 'foo_resource.bin'),
            ('foo', 'bar/bar_resource.bin'),
            ('foofoo', 'bar/bar_resource.bin'),
            ('barbar', 'bar_resource.bin'),
            ('barbar.baz', 'baz_resource.bin')
        )

        for pkg, path in cases:
            f = finder(pkg)
            r = f.find(path)
            fp = r.file_path
            with open(fp, 'rb') as df:
                data = df.read()
            self.assertEqual(data, r.bytes)
Esempio n. 8
0
 def test_iterator(self):
     f = finder('foofoo')
     iterator = f.iterator('')
     actual = set([(r.name, r.is_container) for r in iterator])
     expected = set([
         ('', True),
         ('nested/nested_resource.bin', False),
         ('bar', True),
         ('__init__.py', False),
         ('nested', True),
         ('bar/bar_resource.bin', False),
         ('bar/__init__.py', False),
         ('bar/baz.py', False),
         ('foo_resource.bin', False),
     ])
     self.assertEqual(actual, expected)
     iterator = f.iterator('bar')
     actual = set([(r.name, r.is_container) for r in iterator])
     expected = set([('bar/baz.py', False), ('bar', True),
                     ('bar/bar_resource.bin', False),
                     ('bar/__init__.py', False)])
     self.assertEqual(actual, expected)
     iterator = f.iterator('bar/bar_resource.bin')
     actual = set([(r.name, r.is_container) for r in iterator])
     self.assertEqual(actual, set([('bar/bar_resource.bin', False)]))
Esempio n. 9
0
 def test_root_resources(self):
     f = finder('foo')
     r = f.find('')
     self.assertTrue(r)
     self.assertTrue(r.is_container)
     expected = set(('foo_resource.bin', 'bar', '__init__.py'))
     self.assertEqual(r.resources, expected)
Esempio n. 10
0
 def test_contents(self):
     f = finder('foo')
     r = f.find('foo_resource.bin')
     self.assertTrue(r)
     self.assertRaises(AttributeError, attrgetter('resources'), r)
     r = f.find('bar')
     self.assertTrue(r)
     expected = set(('bar_resource.bin', 'baz.py', '__init__.py'))
     self.assertEqual(r.resources, expected)
Esempio n. 11
0
 def test_contents(self):
     f = finder('foo')
     r = f.find('foo_resource.bin')
     self.assertTrue(r)
     self.assertRaises(AttributeError, attrgetter('resources'), r)
     r = f.find('bar')
     self.assertTrue(r)
     expected = set(('bar_resource.bin', 'baz.py', '__init__.py'))
     self.assertEqual(r.resources, expected)
Esempio n. 12
0
 def test_nested(self):
     f = finder('foofoo')
     r = f.find('nested/nested_resource.bin')
     self.assertTrue(r)
     self.assertFalse(r.is_container)
     self.assertEqual(r.bytes, b'nested data\n')
     stream = r.as_stream()
     self.assertEqual(stream.read(), b'nested data\n')
     stream.close()
     r = f.find('nested')
     self.assertTrue(r)
     self.assertTrue(r.is_container)
     self.assertTrue(r)
     self.assertEqual(r.resources, set(['nested_resource.bin']))
Esempio n. 13
0
 def test_nested(self):
     f = finder('foofoo')
     r = f.find('nested/nested_resource.bin')
     self.assertTrue(r)
     self.assertFalse(r.is_container)
     self.assertEqual(r.bytes, b'nested data\n')
     stream = r.as_stream()
     self.assertEqual(stream.read(), b'nested data\n')
     stream.close()
     r = f.find('nested')
     self.assertTrue(r)
     self.assertTrue(r.is_container)
     self.assertTrue(r)
     self.assertEqual(r.resources, set(['nested_resource.bin']))
Esempio n. 14
0
 def test_existing_resource(self):
     f = finder('foofoo')
     r = f.find('foo_resource.bin')
     self.assertTrue(r)
     self.assertFalse(r.is_container)
     self.assertEqual(r.bytes, b'more_data\n')
     self.assertEqual(r.size, 10)
     stream = r.as_stream()
     self.assertEqual(stream.read(), b'more_data\n')
     stream.close()
     r = f.find('bar')
     self.assertTrue(r)
     self.assertTrue(r.is_container)
     self.assertRaises(AttributeError, attrgetter('bytes'), r)
     self.assertRaises(AttributeError, attrgetter('size'), r)
     f = finder('foofoo.bar')
     r = f.find('bar_resource.bin')
     self.assertTrue(r)
     self.assertFalse(r.is_container)
     self.assertEqual(r.bytes, b'data\n')
     self.assertEqual(r.size, 5)
     stream = r.as_stream()
     self.assertEqual(stream.read(), b'data\n')
     stream.close()
Esempio n. 15
0
 def test_existing_resource(self):
     f = finder('foofoo')
     r = f.find('foo_resource.bin')
     self.assertTrue(r)
     self.assertFalse(r.is_container)
     self.assertEqual(r.bytes, b'more_data\n')
     self.assertEqual(r.size, 10)
     stream = r.as_stream()
     self.assertEqual(stream.read(), b'more_data\n')
     stream.close()
     r = f.find('bar')
     self.assertTrue(r)
     self.assertTrue(r.is_container)
     self.assertRaises(AttributeError, attrgetter('bytes'), r)
     self.assertRaises(AttributeError, attrgetter('size'), r)
     f = finder('foofoo.bar')
     r = f.find('bar_resource.bin')
     self.assertTrue(r)
     self.assertFalse(r.is_container)
     self.assertEqual(r.bytes, b'data\n')
     self.assertEqual(r.size, 5)
     stream = r.as_stream()
     self.assertEqual(stream.read(), b'data\n')
     stream.close()
Esempio n. 16
0
def _ensure_cfg_read():
    global _cfg_read
    if not _cfg_read:
        from distlib.resources import finder
        _finder = finder('distlib._backport')
        _cfgfile = _finder.find('sysconfig.cfg')
        assert _cfgfile, 'sysconfig.cfg exists'
        with _cfgfile.as_stream() as s:
            _SCHEMES.readfp(s)
        if _PYTHON_BUILD:
            for scheme in ('posix_prefix', 'posix_home'):
                _SCHEMES.set(scheme, 'include', '{srcdir}/Include')
                _SCHEMES.set(scheme, 'platinclude', '{projectbase}/.')

        _cfg_read = True
Esempio n. 17
0
def _ensure_cfg_read():
    global _cfg_read
    if not _cfg_read:
        from distlib.resources import finder
        _finder = finder('distlib._backport')
        _cfgfile = _finder.find('sysconfig.cfg')
        assert _cfgfile, 'sysconfig.cfg exists'
        with _cfgfile.as_stream() as s:
            _SCHEMES.readfp(s)
        if _PYTHON_BUILD:
            for scheme in ('posix_prefix', 'posix_home'):
                _SCHEMES.set(scheme, 'include', '{srcdir}/Include')
                _SCHEMES.set(scheme, 'platinclude', '{projectbase}/.')

        _cfg_read = True
Esempio n. 18
0
def _ensure_cfg_read():
    global _cfg_read
    if not _cfg_read:
        from distlib.resources import finder

        backport_package = __name__.rsplit(".", 1)[0]
        _finder = finder(backport_package)
        _cfgfile = _finder.find("sysconfig.cfg")
        assert _cfgfile, "sysconfig.cfg exists"
        with _cfgfile.as_stream() as s:
            _SCHEMES.readfp(s)
        if _PYTHON_BUILD:
            for scheme in ("posix_prefix", "posix_home"):
                _SCHEMES.set(scheme, "include", "{srcdir}/Include")
                _SCHEMES.set(scheme, "platinclude", "{projectbase}/.")

        _cfg_read = True
Esempio n. 19
0
    def test_filepath(self):
        path = os.path.join(HERE, 'foo.zip')
        sys.path.insert(0, path)
        self.addCleanup(sys.path.remove, path)
        sys.path.insert(0, HERE)
        self.addCleanup(sys.path.remove, HERE)
        path = '%s/lib' % os.path.join(HERE, 'bar.zip')
        sys.path.insert(0, path)
        self.addCleanup(sys.path.remove, path)

        cases = (('foo', 'foo_resource.bin'), ('foo', 'bar/bar_resource.bin'),
                 ('foofoo', 'bar/bar_resource.bin'),
                 ('barbar', 'bar_resource.bin'), ('barbar.baz',
                                                  'baz_resource.bin'))

        for pkg, path in cases:
            f = finder(pkg)
            r = f.find(path)
            fp = r.file_path
            with open(fp, 'rb') as df:
                data = df.read()
            self.assertEqual(data, r.bytes)
Esempio n. 20
0
 def test_bytes_path(self):
     f = finder('foofoo')
     for path in 'foo/b\xe7r', b'foo/b\xe7r':
         self.assertEqual(type(f._make_path(path)), type(path))
Esempio n. 21
0
    return False

_PYTHON_BUILD = is_python_build()

_cfg_read = False

def _ensure_cfg_read():
    global _cfg_read
    if not _cfg_read:
<<<<<<< HEAD
        from distlib.resources import finder
=======
        from ..resources import finder
>>>>>>> 54eef0be98b1b67c8507db91f4cfa90b64991027
        backport_package = __name__.rsplit('.', 1)[0]
        _finder = finder(backport_package)
        _cfgfile = _finder.find('sysconfig.cfg')
        assert _cfgfile, 'sysconfig.cfg exists'
        with _cfgfile.as_stream() as s:
            _SCHEMES.readfp(s)
        if _PYTHON_BUILD:
            for scheme in ('posix_prefix', 'posix_home'):
                _SCHEMES.set(scheme, 'include', '{srcdir}/Include')
                _SCHEMES.set(scheme, 'platinclude', '{projectbase}/.')

        _cfg_read = True


_SCHEMES = configparser.RawConfigParser()
_VAR_REPL = re.compile(r'\{([^{]*?)\}')
Esempio n. 22
0
 def test_bytes_path(self):
     f = finder('foofoo')
     for path in 'foo/b\xe7r', b'foo/b\xe7r':
         self.assertEqual(type(f._make_path(path)), type(path))
Esempio n. 23
0
 def test_nonexistent_resource(self):
     f = finder('foo')
     r = f.find('no_such_resource.bin')
     self.assertIsNone(r)
Esempio n. 24
0
 def test_nonexistent_resource(self):
     f = finder('foo')
     r = f.find('no_such_resource.bin')
     self.assertIsNone(r)