Ejemplo n.º 1
0
class TestCsvActionFactory(TestCase):
    def setUp(self):
        self.model = MagicMock()
        self.sut = CsvActionFactory(self.model)

    @patch('nsync.management.commands.utils.CsvSyncActionsDecoder')
    def test_from_dict_maps_to_build_correctly(self, ActionDecoder):
        action_flags_mock = MagicMock()
        match_on_mock = MagicMock()
        external_key_mock = MagicMock()

        with patch.object(self.sut, 'build') as build_method:
            result = self.sut.from_dict({
                'action_flags': action_flags_mock,
                'match_on': match_on_mock,
                'external_key': external_key_mock,
                'other_key': 'value'})
            ActionDecoder.decode.assert_called_with(action_flags_mock)
            match_on_mock.split.assert_called_with(
                CsvActionFactory.match_on_delimiter)
            build_method.assert_called_with(
                ActionDecoder.decode.return_value,
                match_on_mock.split.return_value,
                external_key_mock,
                {'other_key': 'value'})
            self.assertEqual(build_method.return_value, result)

    def test_returns_an_empty_list_if_no_actions_in_input(self):
        self.assertEqual([], self.sut.from_dict(None))

    def test_it_raises_an_error_if_the_action_flag_key_is_not_in_values(self):
        with self.assertRaises(KeyError):
            self.sut.from_dict({'not_matched': 'value'})

    def test_it_raises_an_error_if_the_match_field_key_is_not_in_values(self):
        with self.assertRaises(KeyError):
            self.sut.from_dict({'action_flags': ''})
Ejemplo n.º 2
0
 def setUp(self):
     self.model = MagicMock()
     self.sut = CsvActionFactory(self.model)