def test_keys(self): pkg = Package() assert not pkg.keys() pkg.set('asdf', LOCAL_MANIFEST) assert set(pkg.keys()) == {'asdf'} pkg.set('jkl;', REMOTE_MANIFEST) assert set(pkg.keys()) == {'asdf', 'jkl;'} pkg.delete('asdf') assert set(pkg.keys()) == {'jkl;'}
def test_brackets(self): pkg = Package() pkg.set('asdf/jkl', LOCAL_MANIFEST) pkg.set('asdf/qwer', LOCAL_MANIFEST) pkg.set('qwer/asdf', LOCAL_MANIFEST) assert set(pkg.keys()) == {'asdf', 'qwer'} pkg2 = pkg['asdf'] assert set(pkg2.keys()) == {'jkl', 'qwer'} assert pkg['asdf']['qwer'].get() == LOCAL_MANIFEST.as_uri() assert pkg['asdf']['qwer'] == pkg['asdf/qwer'] == pkg[('asdf', 'qwer')] assert pkg[[]] == pkg pkg = (Package().set('foo', DATA_DIR / 'foo.txt', {'foo': 'blah'})) pkg['foo'].meta['target'] = 'unicode' pkg.build("Quilt/Test") assert pkg['foo'].deserialize() == '123\n' assert pkg['foo']() == '123\n' with pytest.raises(KeyError): pkg['baz'] with pytest.raises(TypeError): pkg[b'asdf'] with pytest.raises(TypeError): pkg[0]
def test_local_set_dir(self): """ Verify building a package from a local directory. """ pkg = Package() # Create some nested example files that contain their names. foodir = pathlib.Path("foo_dir") bazdir = pathlib.Path(foodir, "baz_dir") bazdir.mkdir(parents=True, exist_ok=True) with open('bar', 'w') as fd: fd.write(fd.name) with open('foo', 'w') as fd: fd.write(fd.name) with open(bazdir / 'baz', 'w') as fd: fd.write(fd.name) with open(foodir / 'bar', 'w') as fd: fd.write(fd.name) pkg = pkg.set_dir("/", ".", meta="test_meta") assert pathlib.Path( 'foo').resolve().as_uri() == pkg['foo'].physical_keys[0] assert pathlib.Path( 'bar').resolve().as_uri() == pkg['bar'].physical_keys[0] assert (bazdir / 'baz').resolve().as_uri( ) == pkg['foo_dir/baz_dir/baz'].physical_keys[0] assert ( foodir / 'bar').resolve().as_uri() == pkg['foo_dir/bar'].physical_keys[0] assert pkg.meta == "test_meta" pkg = Package() pkg = pkg.set_dir('/', 'foo_dir/baz_dir/') # todo nested at set_dir site or relative to set_dir path. assert (bazdir / 'baz').resolve().as_uri() == pkg['baz'].physical_keys[0] pkg = Package() pkg = pkg.set_dir('my_keys', 'foo_dir/baz_dir/') # todo nested at set_dir site or relative to set_dir path. assert ( bazdir / 'baz').resolve().as_uri() == pkg['my_keys/baz'].physical_keys[0] # Verify ignoring files in the presence of a dot-quiltignore with open('.quiltignore', 'w') as fd: fd.write('foo\n') fd.write('bar') pkg = Package() pkg = pkg.set_dir("/", ".") assert 'foo_dir' in pkg.keys() assert 'foo' not in pkg.keys() and 'bar' not in pkg.keys() with open('.quiltignore', 'w') as fd: fd.write('foo_dir') pkg = Package() pkg = pkg.set_dir("/", ".") assert 'foo_dir' not in pkg.keys() with open('.quiltignore', 'w') as fd: fd.write('foo_dir\n') fd.write('foo_dir/baz_dir') pkg = Package() pkg = pkg.set_dir("/", ".") assert 'foo_dir/baz_dir' not in pkg.keys( ) and 'foo_dir' not in pkg.keys() pkg = pkg.set_dir("new_dir", ".", meta="new_test_meta") assert pathlib.Path( 'foo').resolve().as_uri() == pkg['new_dir/foo'].physical_keys[0] assert pathlib.Path( 'bar').resolve().as_uri() == pkg['new_dir/bar'].physical_keys[0] assert pkg['new_dir'].meta == "new_test_meta" # verify set_dir logical key shortcut pkg = Package() pkg.set_dir("/") assert pathlib.Path( 'foo').resolve().as_uri() == pkg['foo'].physical_keys[0] assert pathlib.Path( 'bar').resolve().as_uri() == pkg['bar'].physical_keys[0]