コード例 #1
0
    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)
コード例 #2
0
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)
コード例 #3
0
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)
コード例 #4
0
 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)
コード例 #5
0
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)
コード例 #6
0
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(
        )