|
12 | 12 | Column,
|
13 | 13 | Connection,
|
14 | 14 | Database,
|
| 15 | + Procedure, |
15 | 16 | Readme,
|
16 | 17 | Schema,
|
17 | 18 | Table,
|
@@ -548,6 +549,98 @@ def test_trim_to_required(
|
548 | 549 | assert response.mutated_entities is None
|
549 | 550 |
|
550 | 551 |
|
| 552 | +@pytest.mark.order(after="TestView") |
| 553 | +class TestProcedure: |
| 554 | + procedure: Optional[Procedure] = None |
| 555 | + _DEFINITION = """ |
| 556 | + BEGIN |
| 557 | + insert into `atlanhq.testing_lineage.INSTACART_ALCOHOL_ORDER_TIME_copy` |
| 558 | + select * from `atlanhq.testing_lineage.INSTACART_ALCOHOL_ORDER_TIME`; |
| 559 | + END |
| 560 | + """ |
| 561 | + |
| 562 | + def test_creator( |
| 563 | + self, |
| 564 | + client: AtlanClient, |
| 565 | + upsert: Callable[[Asset], AssetMutationResponse], |
| 566 | + ): |
| 567 | + procedure_name = TestId.make_unique("My_Procedure") |
| 568 | + assert TestSchema.schema is not None |
| 569 | + assert TestSchema.schema.qualified_name |
| 570 | + procedure = Procedure.creator( |
| 571 | + name=procedure_name, |
| 572 | + definition=self._DEFINITION, |
| 573 | + schema_qualified_name=TestSchema.schema.qualified_name, |
| 574 | + ) |
| 575 | + response = upsert(procedure) |
| 576 | + assert response.mutated_entities |
| 577 | + assert response.mutated_entities.CREATE |
| 578 | + assert len(response.mutated_entities.CREATE) == 1 |
| 579 | + assert isinstance(response.mutated_entities.CREATE[0], Procedure) |
| 580 | + assert response.guid_assignments |
| 581 | + procedure = response.mutated_entities.CREATE[0] |
| 582 | + TestProcedure.procedure = procedure |
| 583 | + |
| 584 | + def test_overload_creator( |
| 585 | + self, |
| 586 | + client: AtlanClient, |
| 587 | + upsert: Callable[[Asset], AssetMutationResponse], |
| 588 | + ): |
| 589 | + procedure_name = TestId.make_unique("My_Procedure_Overload") |
| 590 | + assert TestDatabase.database is not None |
| 591 | + assert TestDatabase.database.name |
| 592 | + assert TestDatabase.database.qualified_name |
| 593 | + assert TestSchema.schema is not None |
| 594 | + assert TestSchema.schema.name |
| 595 | + assert TestSchema.schema.qualified_name |
| 596 | + assert TestConnection.connection is not None |
| 597 | + assert TestConnection.connection.qualified_name |
| 598 | + |
| 599 | + procedure = Procedure.creator( |
| 600 | + name=procedure_name, |
| 601 | + definition=self._DEFINITION, |
| 602 | + schema_name=TestSchema.schema.name, |
| 603 | + schema_qualified_name=TestSchema.schema.qualified_name, |
| 604 | + database_name=TestDatabase.database.name, |
| 605 | + database_qualified_name=TestDatabase.database.qualified_name, |
| 606 | + connection_qualified_name=TestConnection.connection.qualified_name, |
| 607 | + ) |
| 608 | + response = upsert(procedure) |
| 609 | + assert response.mutated_entities |
| 610 | + assert response.mutated_entities.CREATE |
| 611 | + assert len(response.mutated_entities.CREATE) == 1 |
| 612 | + assert isinstance(response.mutated_entities.CREATE[0], Procedure) |
| 613 | + assert response.guid_assignments |
| 614 | + |
| 615 | + @pytest.mark.order(after="test_creator") |
| 616 | + def test_updater( |
| 617 | + self, client: AtlanClient, upsert: Callable[[Asset], AssetMutationResponse] |
| 618 | + ): |
| 619 | + assert TestProcedure.procedure |
| 620 | + procedure = TestProcedure.procedure |
| 621 | + assert procedure.qualified_name |
| 622 | + assert procedure.name |
| 623 | + assert procedure.definition |
| 624 | + description = f"{procedure.description} more stuff" |
| 625 | + procedure = Procedure.updater( |
| 626 | + qualified_name=procedure.qualified_name, |
| 627 | + name=procedure.name, |
| 628 | + definition=procedure.definition, |
| 629 | + ) |
| 630 | + procedure.description = description |
| 631 | + response = upsert(procedure) |
| 632 | + verify_asset_updated(response, Procedure) |
| 633 | + |
| 634 | + @pytest.mark.order(after="test_creator") |
| 635 | + def test_trim_to_required( |
| 636 | + self, client: AtlanClient, upsert: Callable[[Asset], AssetMutationResponse] |
| 637 | + ): |
| 638 | + assert TestProcedure.procedure |
| 639 | + procedure = TestProcedure.procedure.trim_to_required() |
| 640 | + response = upsert(procedure) |
| 641 | + assert response.mutated_entities is None |
| 642 | + |
| 643 | + |
551 | 644 | @pytest.mark.order(after="TestView")
|
552 | 645 | class TestColumn:
|
553 | 646 | column: Optional[Column] = None
|
|
0 commit comments