예제 #1
0
    def test_when_schema_in_inputs_and_provider_and_db_in_just_provider_then_db_output_is_from_provider(
            self):
        mock_cursor = Mock()
        mock_connection_provider = self.get_mock_connection_provider(
            mock_cursor)

        mock_provider = self.get_mock_provider()
        mock_provider.database = "test_provider_db"
        mock_provider.schema = "test_provider_schema"

        provider = BaseDynamicProvider(mock_provider, mock_connection_provider,
                                       'TESTOBJECT', [])
        result = provider.create({
            "name": "test_name",
            "resource_name": "test_resource_name",
            "schema": "test_input_schema",
        })

        self.assertDictEqual(
            result.outs, {
                "database": "test_provider_db",
                "schema": "test_input_schema",
                "full_name": "test_provider_db.test_input_schema.test_name",
                "name": "test_name"
            })
예제 #2
0
    def test_when_database_not_provided_then_short_object_name_in_delete(self):
        mock_cursor = Mock()
        mock_connection_provider = self.get_mock_connection_provider(
            mock_cursor)

        provider = BaseDynamicProvider(self.get_mock_provider(),
                                       mock_connection_provider, 'TESTOBJECT',
                                       [])
        provider.delete("test_name", {
            "name": "test_name",
        })

        mock_cursor.execute.assert_has_calls(
            [call("\n".join([f"DROP TESTOBJECT test_name"]))])
예제 #3
0
    def test_when_database_not_provided_then_short_object_name(self):
        mock_cursor = Mock()
        mock_connection_provider = self.get_mock_connection_provider(
            mock_cursor)

        provider = BaseDynamicProvider(self.get_mock_provider(),
                                       mock_connection_provider, 'TESTOBJECT',
                                       [])
        provider.create({
            "name": "test_name",
            "resource_name": "test_resource_name"
        })

        mock_cursor.execute.assert_has_calls(
            [call("\n".join([f"CREATE TESTOBJECT test_name"]))])
예제 #4
0
    def test_when_database_and_schema_given_in_provider_then_do_not_appear_in_delete(
            self):
        mock_cursor = Mock()
        mock_connection_provider = self.get_mock_connection_provider(
            mock_cursor)

        mock_provider = self.get_mock_provider()
        mock_provider.database = "test_provider_db"
        mock_provider.schema = "test_provider_schema"

        provider = BaseDynamicProvider(mock_provider, mock_connection_provider,
                                       'TESTOBJECT', [])
        provider.delete("test_name", {"name": "test_name"})

        mock_cursor.execute.assert_has_calls(
            [call("\n".join([f"DROP TESTOBJECT test_name"]))])
예제 #5
0
    def test_when_database_not_provided_then_only_full_name_appears_in_outputs(
            self):
        mock_cursor = Mock()
        mock_connection_provider = self.get_mock_connection_provider(
            mock_cursor)

        provider = BaseDynamicProvider(self.get_mock_provider(),
                                       mock_connection_provider, 'TESTOBJECT',
                                       [])
        result = provider.create({
            "name": "test_name",
            "resource_name": "test_resource_name"
        })

        self.assertDictEqual(result.outs, {
            "full_name": "test_name",
            "name": "test_name"
        })
예제 #6
0
    def test_when_database_and_schema_provided_then_fully_qualified_object_name_in_delete(
            self):
        mock_cursor = Mock()
        mock_connection_provider = self.get_mock_connection_provider(
            mock_cursor)

        provider = BaseDynamicProvider(self.get_mock_provider(),
                                       mock_connection_provider, 'TESTOBJECT',
                                       [])
        provider.delete("test_name", {
            "database": "test_db",
            "schema": "test_schema",
            "name": "test_name",
        })

        mock_cursor.execute.assert_has_calls([
            call("\n".join([f"DROP TESTOBJECT test_db.test_schema.test_name"]))
        ])
예제 #7
0
    def test_when_database_but_not_schema_given_in_provider_then_do_not_appear_in_outputs(
            self):
        mock_cursor = Mock()
        mock_connection_provider = self.get_mock_connection_provider(
            mock_cursor)

        mock_provider = self.get_mock_provider()
        mock_provider.database = "test_provider_db"
        mock_provider.schema = None

        provider = BaseDynamicProvider(mock_provider, mock_connection_provider,
                                       'TESTOBJECT', [])
        result = provider.create({
            "name": "test_name",
            "resource_name": "test_resource_name"
        })

        self.assertDictEqual(result.outs, {
            "full_name": "test_name",
            "name": "test_name"
        })
예제 #8
0
    def test_when_database_but_not_schema_provided_then_schema_is_none_in_outputs(
            self):
        mock_cursor = Mock()
        mock_connection_provider = self.get_mock_connection_provider(
            mock_cursor)

        provider = BaseDynamicProvider(self.get_mock_provider(),
                                       mock_connection_provider, 'TESTOBJECT',
                                       [])
        result = provider.create({
            "database": "test_db",
            "name": "test_name",
            "resource_name": "test_resource_name"
        })

        self.assertDictEqual(
            result.outs, {
                "database": "test_db",
                "schema": None,
                "full_name": "test_db..test_name",
                "name": "test_name"
            })
예제 #9
0
    def test_when_database_given_in_inputs_and_provider_and_schema_just_in_provider_then_provider_schema_in_create(
            self):
        mock_cursor = Mock()
        mock_connection_provider = self.get_mock_connection_provider(
            mock_cursor)

        mock_provider = self.get_mock_provider()
        mock_provider.database = "test_provider_db"
        mock_provider.schema = "test_provider_schema"

        provider = BaseDynamicProvider(mock_provider, mock_connection_provider,
                                       'TESTOBJECT', [])
        provider.create({
            "name": "test_name",
            "resource_name": "test_resource_name",
            "database": "test_input_db",
        })

        mock_cursor.execute.assert_has_calls([
            call("\n".join([
                f"CREATE TESTOBJECT test_input_db.test_provider_schema.test_name"
            ]))
        ])