def test_process_row_multi(self): mapping_1 = {'one': 'one'} save_mock_1 = mock.Mock(return_value=None) model_1 = mock.Mock(MyModel) model_1.return_value.save = save_mock_1 mapping_2 = {'two': 'two'} save_mock_2 = mock.Mock(return_value=None) model_2 = mock.Mock(MyModel) model_2.return_value.save = save_mock_2 linking_func = mock.Mock() bdih = BulkDataImportHandler() bdih.add_mapping(model_1, mapping_1) bdih.add_mapping(model_2, mapping_2) bdih.add_linking_function(linking_func) headers = ['one', 'two'] vals = ['val1', 'spot'] affected_records, stats = bdih.process_row(headers, vals) result_1, result_2 = affected_records # make sure one class each was created self.assertEqual(model_1.call_count, 1) self.assertEqual(model_2.call_count, 1) # now make sure each save was called once self.assertEqual(save_mock_1.call_count, 1) self.assertEqual(save_mock_2.call_count, 1) # check values were saved onto each instance self.assertEqual('val1', result_1.one) self.assertEqual('spot', result_2.two) # check the linking function was called self.assertTrue(linking_func.called) linking_func.assert_called_with(result_1, result_2)
def test_process_row_single(self): mapping = {'one': 'one'} save_mock = mock.Mock(return_value=None) model = mock.Mock(MyModel) model.return_value.save = save_mock bdih = BulkDataImportHandler() bdih.add_mapping(model, mapping) headers = ['one', 'two'] vals = ['val1', 'spot'] affected_records, used_cols = bdih.process_row(headers, vals) new_record = affected_records[0] # make sure class was created self.assertEqual(model.call_count, 1) # now make sure save was called once self.assertEqual(save_mock.call_count, 1) self.assertEqual('val1', new_record.one)