def test_common_metadata_output_type_matches_input_type(self):
        metadata_clone = list(self.metadata_from_db_for_users)
        result_metadata, result_error = loadtables.get_common_metadata(self.metadata_from_db_for_users,
                                                                       metadata_clone)

        self.assertEqual(0, len(result_error))
        self.assertListEqual(result_metadata, metadata_clone)
    def test_common_metadata_item_names_are_in_both_metadata(self):
        result_metadata, result_error = loadtables.get_common_metadata(self.metadata_from_db_for_users,
                                                                       self.metadata_from_csv_for_users)

        result_column_names = set([item["name"] for item in result_metadata])
        result_error_column_names = set([item["name"] for item in result_error])
        self.assertSetEqual(set(('id', 'licensing_role_id')), result_column_names)
        self.assertSetEqual(set(('login_at',)), result_error_column_names)
    def test_common_metadata_not_only_same_table(self):
        metadata_oldusers = [
            {'attnum': '1', 'precision': 0, 'schema': 'public', 'name': 'id', 'type': 'integer', 'length': 0,
             'table': 'oldusers'},
            {'attnum': '2', 'precision': 0, 'schema': 'public', 'name': 'login_at',
             'type': 'timestamp without time zone', 'length': 0, 'table': 'oldusers'},
            {'attnum': '3', 'precision': 0, 'schema': 'public', 'name': 'licensing_role_id', 'type': 'integer',
             'length': 0, 'table': 'oldusers'}]

        result_metadata, result_error = loadtables.get_common_metadata(metadata_oldusers,
                                                                       self.metadata_from_csv_for_users)

        self.assertEqual(3, len(result_metadata))
        self.assertEqual(0, len(result_error))
    def test_common_metadata_size(self):
        result_metadata, result_error = loadtables.get_common_metadata(self.metadata_from_db_for_users,
                                                                       self.metadata_from_csv_for_users)

        self.assertEqual(2, len(result_metadata))
        self.assertEqual(1, len(result_error))
 def test_common_metadata_empty_metadata_in_csv(self):
     result_metadata, result_error = loadtables.get_common_metadata(self.metadata_from_db_for_users,
                                                                    [])
     self.assertEqual(0, len(result_metadata))
     self.assertEqual(0, len(result_error))