def test_select_selection_too_deep(self): arg = Argument('test', reference='some_uid', selection=['a', 0, '1', 'b', 10]) input_ = {'a': [[{'one': 1}, {'three': 3, 'b': 4}], [{'one': 1}, {'two': 2}]], 'b': 15, 'c': 'something'} with self.assertRaises(InvalidArgument): arg._select(input_)
def test_select(self): arg = Argument('test', reference='some_uid', selection=['a', 0, '1', 'b']) input_ = {'a': [[{'one': 1}, {'three': 3, 'b': 4}], [{'one': 1}, {'two': 2}]], 'b': 15, 'c': 'something'} self.assertEqual(arg._select(input_), 4)
def test_select_one_on_value(self): arg = Argument('test', reference='some_uid', selection=['d']) with self.assertRaises(InvalidArgument): arg._select('some raw value')
def test_select_one_on_dict_key_error(self): arg = Argument('test', reference='some_uid', selection=['d']) with self.assertRaises(InvalidArgument): arg._select({'a': 1, 'b': 2, 'c': 3})
def test_select_one_on_dict(self): arg = Argument('test', reference='some_uid', selection=['b']) self.assertEqual(arg._select({'a': 1, 'b': 2, 'c': 3}), 2)
def test_select_one_on_list_out_of_range(self): arg = Argument('test', reference='some_uid', selection=[10]) with self.assertRaises(InvalidArgument): arg._select(['a', 'b', 'c'])
def test_select_one_on_list(self): arg = Argument('test', reference='some_uid', selection=[1]) self.assertEqual(arg._select(['a', 'b', 'c']), 'b')