def test_no_merge_records_bulk_insert_flush(self, apps_mock, tree_id_mock, BridgeMock):
     channel_import = ChannelImport('test')
     record_mock = MagicMock(spec=['__table__'])
     record_mock.__table__.columns.items.return_value = [('test_attr', MagicMock())]
     channel_import.destination.get_class.return_value = record_mock
     channel_import.table_import(MagicMock(), lambda x, y: 'test_val', lambda x: [{}]*10000, 0)
     channel_import.destination.session.bulk_insert_mappings.assert_has_calls([call(record_mock, [{'test_attr': 'test_val'}]*10000)])
     channel_import.destination.session.flush.assert_called_once_with()
 def test_merge_records_merge_flush(self, apps_mock, tree_id_mock, BridgeMock):
     from kolibri.content.utils.channel_import import merge_models
     channel_import = ChannelImport('test')
     record_mock = Mock(spec=['__table__'])
     record_mock.__table__.columns.items.return_value = [('test_attr', MagicMock())]
     channel_import.destination.get_class.return_value = record_mock
     model_mock = Mock()
     merge_models.append(model_mock)
     channel_import.table_import(model_mock, lambda x, y: 'test_val', lambda x: [{}]*10000, 0)
     channel_import.destination.session.merge.assert_has_calls([call(record_mock(**{'test_attr': 'test_val'}))]*10000)
     channel_import.destination.session.flush.assert_called_once_with()
 def test_merge_records_merge_no_flush(self, apps_mock, tree_id_mock,
                                       BridgeMock):
     from kolibri.content.utils.channel_import import merge_models
     channel_import = ChannelImport('test')
     record_mock = MagicMock(spec=['__table__'])
     record_mock.__table__.columns.items.return_value = [('test_attr',
                                                          MagicMock())]
     channel_import.destination.get_class.return_value = record_mock
     model_mock = MagicMock()
     model_mock._meta.pk.name = 'test_attr'
     merge_models.append(model_mock)
     channel_import.merge_record = Mock()
     channel_import.table_import(model_mock, lambda x, y: 'test_val',
                                 lambda x: [{}] * 100, 0)
     channel_import.destination.session.flush.assert_not_called()
 def test_no_models_unflushed_rows_passed_through(self, apps_mock,
                                                  tree_id_mock, BridgeMock):
     channel_import = ChannelImport('test')
     record_mock = MagicMock(spec=['__table__'])
     channel_import.destination.get_class.return_value = record_mock
     self.assertEqual(
         0,
         channel_import.table_import(MagicMock(), lambda x, y: None,
                                     lambda x: [], 0))