Skip to content

Commit

Permalink
Added storeproceduretype and test method
Browse files Browse the repository at this point in the history
  • Loading branch information
Akash Verma authored and Akash Verma committed Dec 16, 2024
1 parent 458adb0 commit 5fc5cac
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
from metadata.generated.schema.entity.data.storedProcedure import (
Language,
StoredProcedureCode,
StoredProcedureType,
)
from metadata.generated.schema.entity.data.table import TableType
from metadata.generated.schema.entity.services.connections.database.oracleConnection import (
Expand Down Expand Up @@ -227,14 +228,18 @@ def yield_stored_procedure(
self, stored_procedure: OracleStoredObject
) -> Iterable[Either[CreateStoredProcedureRequest]]:
"""Prepare the stored procedure payload"""

try:
stored_procedure_request = CreateStoredProcedureRequest(
name=EntityName(stored_procedure.name),
storedProcedureCode=StoredProcedureCode(
language=Language.SQL,
code=stored_procedure.definition,
),
storedProcedureType=(
StoredProcedureType.StoredPackage
if stored_procedure.procedure_type == "StoredPackage"
else StoredProcedureType.StoredProcedure
),
owners=self.metadata.get_reference_by_name(
name=stored_procedure.owner.lower(), is_owner=True
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class OracleStoredObject(BaseModel):
None, description="Will only be informed for non-SQL routines."
)
owner: str
procedure_type: Optional[str] = Field(None, alias="PROCEDURE_TYPE")
procedure_type: Optional[str] = Field(None, alias="procedure_type")


class FetchObject(BaseModel):
Expand Down
41 changes: 40 additions & 1 deletion ingestion/tests/unit/topology/database/test_oracle.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@
)
from metadata.generated.schema.entity.data.database import Database
from metadata.generated.schema.entity.data.databaseSchema import DatabaseSchema
from metadata.generated.schema.entity.data.storedProcedure import StoredProcedureCode
from metadata.generated.schema.entity.data.storedProcedure import (
StoredProcedureCode,
StoredProcedureType,
)
from metadata.generated.schema.entity.services.connections.metadata.openMetadataConnection import (
OpenMetadataConnection,
)
Expand Down Expand Up @@ -107,6 +110,14 @@
name="sample_procedure",
definition="SAMPLE_SQL_TEXT",
owner="sample_stored_prcedure_owner",
procedure_type="StoredProcedure",
)

MOCK_STORED_PACKAGE = OracleStoredObject(
name="sample_package",
definition="SAMPLE_SQL_TEXT",
owner="sample_stored_package_owner",
procedure_type="StoredPackage",
)

EXPECTED_DATABASE = [
Expand Down Expand Up @@ -154,6 +165,28 @@
owners=None,
tags=None,
storedProcedureCode=StoredProcedureCode(language="SQL", code="SAMPLE_SQL_TEXT"),
storedProcedureType=StoredProcedureType.StoredProcedure,
databaseSchema=FullyQualifiedEntityName(
"oracle_source_test.sample_database.sample_schema"
),
extension=None,
dataProducts=None,
sourceUrl=None,
domain=None,
lifeCycle=None,
sourceHash=None,
)
]

EXPECTED_STORED_PACKAGE = [
CreateStoredProcedureRequest(
name=EntityName("sample_package"),
displayName=None,
description=None,
owners=None,
tags=None,
storedProcedureCode=StoredProcedureCode(language="SQL", code="SAMPLE_SQL_TEXT"),
storedProcedureType=StoredProcedureType.StoredPackage,
databaseSchema=FullyQualifiedEntityName(
"oracle_source_test.sample_database.sample_schema"
),
Expand Down Expand Up @@ -221,3 +254,9 @@ def test_yield_stored_procedure(self):
either.right
for either in self.oracle.yield_stored_procedure(MOCK_STORED_PROCEDURE)
]

def test_yield_stored_package(self):
assert EXPECTED_STORED_PACKAGE == [
either.right
for either in self.oracle.yield_stored_procedure(MOCK_STORED_PACKAGE)
]

0 comments on commit 5fc5cac

Please sign in to comment.