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'