def test_argument_retrieve(): setup_context() meta = Metadata() meta.foo = 'bar' setup_context() ctx.meta = meta # test retrieval from ctx.env ctx.env['FOO'] = 'bar' arg = Argument('foo').retrieve(ctx.env) assert arg.value == 'bar' # test if argument is not present del ctx.env['FOO'] arg = Argument('foo').retrieve(ctx.env) arg.retrieve(ctx.env) assert arg.value is None assert arg.is_empty # test retrieval from meta arg = Argument('foo').retrieve(ctx.meta) assert arg.value == 'bar' col = OptionsCollection() col.add(StringOption('foo', 'Enables foo for testing.', keys='somethingelse')) col.retrieve_from_dict({'foo': 'bar'}) arg = Argument('foo').retrieve(col) assert arg.value == 'bar' arg = Argument('foo').retrieve({'foo': 'bar'}) assert arg.value == 'bar' col = ArgumentCollection.from_dict({'foo': 'bar'}) arg = Argument('foo').retrieve(col) assert arg.value == 'bar' arg = Argument('foo').retrieve('bar') assert arg.value == 'bar'
def test_metadata(): meta = Metadata() assert meta.projectname == 'myproject' assert meta.projectid == 'myproject' meta.projectname = 'foo' assert meta.projectname == 'foo' assert meta.projectid == 'foo' meta.projectid = 'bar' assert meta.projectid == 'bar' meta.projectname = 'foobar' assert meta.projectid == 'bar' meta.foobar = 'foobar' assert meta.foobar == 'foobar' assert meta.as_dict() == {'projectname': 'foobar', 'foobar': 'foobar', 'projectid': 'bar'}