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()
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()
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)
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)
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)
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)]))
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)
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)]))
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)
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)
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)
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']))
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']))
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()
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()
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
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
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
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)
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))
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'\{([^{]*?)\}')
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))
def test_nonexistent_resource(self): f = finder('foo') r = f.find('no_such_resource.bin') self.assertIsNone(r)
def test_nonexistent_resource(self): f = finder('foo') r = f.find('no_such_resource.bin') self.assertIsNone(r)