def setUp(self): self.mock_schema_name = Mock(name='schema_name') self.mock_table_name = Mock(name='table_name') self.mock_db_engine = Mock(name='db_engine') self.mock_db_driver = Mock(name='db_engine') self.mock_add_user_perms_for = Mock(name='add_user_perms_for') self.mock_add_group_perms_for = Mock(name='add_group_perms_for') self.mock_existing_table_handling = Mock( name='existing_table_handling') self.mock_drop_and_recreate_on_load_error =\ Mock(name='drop_and_recreate_on_load_error') mock_driver = self.mock_db_driver.return_value mock_loader = mock_driver.loader.return_value mock_supported_records_format_1 = Mock( name='supported_records_format_1') mock_known_supported_records_formats = [ mock_supported_records_format_1 ] mock_loader.known_supported_records_formats_for_load.return_value =\ mock_known_supported_records_formats self.target =\ TableRecordsTarget(schema_name=self.mock_schema_name, table_name=self.mock_table_name, db_engine=self.mock_db_engine, db_driver=self.mock_db_driver, add_user_perms_for=self.mock_add_user_perms_for, add_group_perms_for=self.mock_add_group_perms_for, existing_table_handling=self.mock_existing_table_handling, drop_and_recreate_on_load_error= self.mock_drop_and_recreate_on_load_error)
class TestTableFormatNegotiation(unittest.TestCase): def setUp(self): self.mock_schema_name = Mock(name='schema_name') self.mock_table_name = Mock(name='table_name') self.mock_db_engine = MagicMock(name='db_engine') self.mock_db_driver = Mock(name='db_driver') self.mock_permissions_users = Mock(name='permissions_users') self.mock_permissions_groups = Mock(name='permissions_groups') self.mock_existing_table_handling = Mock(name='existing_table_handling') mock_driver = self.mock_db_driver.return_value mock_records_format = Mock(name='records_format') self.mock_loader = mock_driver.loader.return_value self.mock_loader.known_supported_records_formats_for_load.return_value = [ mock_records_format ] self.table = TableRecordsTarget(self.mock_schema_name, self.mock_table_name, self.mock_db_engine, self.mock_db_driver, add_user_perms_for=self.mock_permissions_users, add_group_perms_for=self.mock_permissions_groups, existing_table_handling=self.mock_existing_table_handling) def test_known_supported_records_formats(self): out = self.table.known_supported_records_formats() self.assertEqual(out, self.mock_loader. known_supported_records_formats_for_load.return_value)
class TestTableFileObjects(unittest.TestCase): def setUp(self): self.mock_schema_name = Mock(name='schema_name') self.mock_table_name = Mock(name='table_name') self.mock_db_engine = MagicMock(name='db_engine') self.mock_db_driver = Mock(name='db_driver') self.mock_permissions_users = Mock(name='permissions_users') self.mock_permissions_groups = Mock(name='permissions_groups') self.mock_existing_table_handling = Mock( name='existing_table_handling') mock_driver = self.mock_db_driver.return_value mock_records_format = Mock(name='records_format') self.mock_loader = mock_driver.loader.return_value self.mock_loader_from_fileobj = mock_driver.loader_from_fileobj.return_value self.mock_loader.known_supported_records_formats_for_load.return_value = [ mock_records_format ] self.table = TableRecordsTarget( self.mock_schema_name, self.mock_table_name, self.mock_db_engine, self.mock_db_driver, add_user_perms_for=self.mock_permissions_users, add_group_perms_for=self.mock_permissions_groups, existing_table_handling=self.mock_existing_table_handling) def test_can_move_directly_from_scheme(self): mock_scheme = Mock(name='scheme') mock_driver = self.mock_db_driver.return_value mock_loader = mock_driver.loader.return_value mock_loader.best_scheme_to_load_from.return_value = mock_scheme self.assertEqual(True, self.table.can_move_directly_from_scheme(mock_scheme)) self.mock_db_driver.assert_called_with(self.mock_db_engine)
def setUp(self): self.mock_schema_name = Mock(name='schema_name') self.mock_table_name = Mock(name='table_name') self.mock_db_engine = MagicMock(name='db_engine') self.mock_db_driver = Mock(name='db_driver') self.mock_permissions_users = Mock(name='permissions_users') self.mock_permissions_groups = Mock(name='permissions_groups') self.mock_existing_table_handling = Mock(name='existing_table_handling') mock_driver = self.mock_db_driver.return_value mock_records_format = Mock(name='records_format') self.mock_loader = mock_driver.loader.return_value self.mock_loader.known_supported_records_formats_for_load.return_value = [ mock_records_format ] self.table = TableRecordsTarget(self.mock_schema_name, self.mock_table_name, self.mock_db_engine, self.mock_db_driver, add_user_perms_for=self.mock_permissions_users, add_group_perms_for=self.mock_permissions_groups, existing_table_handling=self.mock_existing_table_handling)
class TestTarget(unittest.TestCase): def setUp(self): self.mock_schema_name = Mock(name='schema_name') self.mock_table_name = Mock(name='table_name') self.mock_db_engine = Mock(name='db_engine') self.mock_db_driver = Mock(name='db_engine') self.mock_add_user_perms_for = Mock(name='add_user_perms_for') self.mock_add_group_perms_for = Mock(name='add_group_perms_for') self.mock_existing_table_handling = Mock( name='existing_table_handling') self.mock_drop_and_recreate_on_load_error =\ Mock(name='drop_and_recreate_on_load_error') mock_driver = self.mock_db_driver.return_value mock_loader = mock_driver.loader.return_value mock_supported_records_format_1 = Mock( name='supported_records_format_1') mock_known_supported_records_formats = [ mock_supported_records_format_1 ] mock_loader.known_supported_records_formats_for_load.return_value =\ mock_known_supported_records_formats self.target =\ TableRecordsTarget(schema_name=self.mock_schema_name, table_name=self.mock_table_name, db_engine=self.mock_db_engine, db_driver=self.mock_db_driver, add_user_perms_for=self.mock_add_user_perms_for, add_group_perms_for=self.mock_add_group_perms_for, existing_table_handling=self.mock_existing_table_handling, drop_and_recreate_on_load_error= self.mock_drop_and_recreate_on_load_error) def test_can_move_from_fileobjs_source_yes(self): self.assertTrue(self.target.can_move_from_fileobjs_source()) self.mock_db_driver.assert_called_with(self.mock_db_engine) def test_can_move_directly_from_scheme_no_loader(self): mock_driver = self.mock_db_driver.return_value mock_driver.loader.return_value = None self.assertFalse(self.target.can_move_directly_from_scheme('whatever')) self.mock_db_driver.assert_called_with(self.mock_db_engine) def test_known_supported_records_formats_no_loader(self): mock_driver = self.mock_db_driver.return_value mock_driver.loader.return_value = None self.assertEqual([], self.target.known_supported_records_formats()) self.mock_db_driver.assert_called_with(self.mock_db_engine) def test_can_move_from_format_no_loader(self): mock_driver = self.mock_db_driver.return_value mock_source_records_format = Mock(name='source_records_format') mock_driver.loader.return_value = None self.assertFalse( self.target.can_move_from_format(mock_source_records_format)) self.mock_db_driver.assert_called_with(self.mock_db_engine)
class TestTableFileObjects(unittest.TestCase): @patch('records_mover.records.targets.table.target.TablePrep') def setUp(self, mock_TablePrep): self.mock_schema_name = Mock(name='schema_name') self.mock_table_name = Mock(name='table_name') self.mock_db_engine = MagicMock(name='db_engine') self.mock_db_driver = Mock(name='db_driver') self.mock_permissions_users = Mock(name='permissions_users') self.mock_permissions_groups = Mock(name='permissions_groups') self.mock_existing_table_handling = Mock( name='existing_table_handling') self.mock_prep = mock_TablePrep.return_value mock_driver = self.mock_db_driver.return_value mock_records_format = Mock(name='records_format') mock_driver.loader.return_value.known_supported_records_formats_for_load.\ return_value = [mock_records_format] self.table = TableRecordsTarget( self.mock_schema_name, self.mock_table_name, self.mock_db_engine, self.mock_db_driver, add_user_perms_for=self.mock_permissions_users, add_group_perms_for=self.mock_permissions_groups, existing_table_handling=self.mock_existing_table_handling) @patch( 'records_mover.records.targets.table.target.DoMoveFromRecordsDirectory' ) def test_move_from_records_directory(self, mock_DoMoveFromRecordsDirectory): mock_directory = Mock(name='directory') mock_processing_instructions = Mock(name='processing_instructions') mock_override_records_format = Mock(name='override_records_format') out = self.table.move_from_records_directory( mock_directory, mock_processing_instructions, mock_override_records_format) self.assertEqual( out, mock_DoMoveFromRecordsDirectory.return_value.move.return_value) mock_DoMoveFromRecordsDirectory.assert_called_with( self.mock_prep, self.table, mock_directory, mock_processing_instructions, mock_override_records_format) mock_DoMoveFromRecordsDirectory.return_value.move.assert_called_with() @patch( 'records_mover.records.targets.table.target.DoMoveFromFileobjsSource') def test_move_from_fileobjs_source(self, mock_DoMoveFromFileobjsSource): mock_fileobjs_source = Mock(name='fileobjs_source') mock_processing_instructions = Mock(name='processing_instructions') out = self.table.move_from_fileobjs_source( mock_fileobjs_source, mock_processing_instructions) self.assertEqual( out, mock_DoMoveFromFileobjsSource.return_value.move.return_value) mock_DoMoveFromFileobjsSource.assert_called_with( self.mock_prep, self.table, mock_fileobjs_source, mock_processing_instructions) mock_DoMoveFromFileobjsSource.return_value.move.assert_called_with() @patch( 'records_mover.records.targets.table.target.DoMoveFromTempLocAfterFillingIt' ) def test_move_from_temp_loc_after_filling_it( self, mock_DoMoveFromTempLocAfterFillingIt): mock_records_source = Mock(name='records_source') mock_processing_instructions = Mock(name='processing_instructions') out = self.table.move_from_temp_loc_after_filling_it( mock_records_source, mock_processing_instructions) self.assertEqual( out, mock_DoMoveFromTempLocAfterFillingIt.return_value.move. return_value) mock_DoMoveFromTempLocAfterFillingIt.assert_called_with( self.mock_prep, self.table, self.table, mock_records_source, mock_processing_instructions) mock_DoMoveFromTempLocAfterFillingIt.return_value.move.assert_called_with( )