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_argument_collection(): arg = Argument('foo').retrieve('bar') col = ArgumentCollection() assert col.isempty() col.add(arg) assert not col.isempty() assert col['foo'] == arg col = ArgumentCollection.from_dict({'test': 'ing'}) assert col['test'].value == 'ing' col1 = ArgumentCollection() col2 = ArgumentCollection() col1['foo'] = 'bar' col2['foo'] = 'test' assert col1.get('foo').value == 'bar' assert col2.get('asdf') is None col1.overwrite_merge(col2) assert col1['foo'].value == 'test' assert col.value('invalid') is None assert col.value('test') == 'ing'