Fix Python tests & flakiness (#5095)

Fix Python tests & flakiness (#5095)
This commit is contained in:
Pere Miquel Brull 2022-05-23 14:54:47 +02:00 committed by GitHub
parent 3de705c912
commit 753d901fb2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 27 additions and 14 deletions

View File

@ -526,10 +526,13 @@ class DashboardESIndex extends ElasticSearchIndex {
dashboard.getTags().forEach(tag -> tags.add(tag.getTagFQN())); dashboard.getTags().forEach(tag -> tags.add(tag.getTagFQN()));
} }
for (EntityReference chart : dashboard.getCharts()) { if (dashboard.getCharts() != null) {
chartNames.add(chart.getDisplayName()); for (EntityReference chart : dashboard.getCharts()) {
chartDescriptions.add(chart.getDescription()); chartNames.add(chart.getDisplayName());
chartDescriptions.add(chart.getDescription());
}
} }
ParseTags parseTags = new ParseTags(tags); ParseTags parseTags = new ParseTags(tags);
String description = dashboard.getDescription() != null ? dashboard.getDescription() : ""; String description = dashboard.getDescription() != null ? dashboard.getDescription() : "";
String displayName = dashboard.getDisplayName() != null ? dashboard.getDisplayName() : ""; String displayName = dashboard.getDisplayName() != null ? dashboard.getDisplayName() : "";

View File

@ -80,7 +80,7 @@ class ESMixin(Generic[T]):
:param retries: Times to retry :param retries: Times to retry
:return: List of Entities or None :return: List of Entities or None
""" """
times = min(1, retries) # Try at least once times = max(1, retries) # Try at least once
while times: while times:
entity_list = self._search_es_entity( entity_list = self._search_es_entity(
entity_type=entity_type, query_string=query_string entity_type=entity_type, query_string=query_string

View File

@ -582,6 +582,7 @@ class MetadataRestSink(Sink[Entity]):
if "." not in from_table_name: if "." not in from_table_name:
from_table_name = f"{db_schema.name.__root__}.{from_table_name}" from_table_name = f"{db_schema.name.__root__}.{from_table_name}"
_create_lineage_by_table_name( _create_lineage_by_table_name(
self.metadata,
from_table_name, from_table_name,
f"{db_schema.name.__root__}.{to_table_name}", f"{db_schema.name.__root__}.{to_table_name}",
db.service.name, db.service.name,

View File

@ -119,6 +119,7 @@ def _(
database_name: Optional[str], database_name: Optional[str],
schema_name: Optional[str], schema_name: Optional[str],
table_name: str, table_name: str,
retries: int = 3,
) -> Optional[str]: ) -> Optional[str]:
""" """
Building logic for tables Building logic for tables
@ -127,6 +128,7 @@ def _(
:param database_name: DB name or None :param database_name: DB name or None
:param schema_name: Schema name or None :param schema_name: Schema name or None
:param table_name: Table name :param table_name: Table name
:param retries: ES Search retries
:return: :return:
""" """
if not service_name or not table_name: if not service_name or not table_name:
@ -143,6 +145,7 @@ def _(
"database_schema": schema_name, "database_schema": schema_name,
"name": table_name, "name": table_name,
}, },
retries=retries,
) )
entity: Optional[Table] = get_entity_from_es_result(entity_list=es_result) entity: Optional[Table] = get_entity_from_es_result(entity_list=es_result)
return str(entity.fullyQualifiedName.__root__) if entity else None return str(entity.fullyQualifiedName.__root__) if entity else None

View File

@ -49,11 +49,6 @@ class OMetaESTest(TestCase):
assert metadata.health_check() assert metadata.health_check()
user = metadata.create_or_update(
data=CreateUserRequest(name="random-user", email="random@user.com"),
)
owner = EntityReference(id=user.id, type="user")
service = CreateDatabaseServiceRequest( service = CreateDatabaseServiceRequest(
name="test-service-es", name="test-service-es",
serviceType=DatabaseServiceType.Mysql, serviceType=DatabaseServiceType.Mysql,
@ -76,28 +71,28 @@ class OMetaESTest(TestCase):
cls.service_entity = cls.metadata.create_or_update(data=cls.service) cls.service_entity = cls.metadata.create_or_update(data=cls.service)
create_db = CreateDatabaseRequest( create_db = CreateDatabaseRequest(
name="test-db", name="test-db-es",
service=EntityReference(id=cls.service_entity.id, type="databaseService"), service=EntityReference(id=cls.service_entity.id, type="databaseService"),
) )
create_db_entity = cls.metadata.create_or_update(data=create_db) create_db_entity = cls.metadata.create_or_update(data=create_db)
cls.db_reference = EntityReference( cls.db_reference = EntityReference(
id=create_db_entity.id, name="test-db", type="database" id=create_db_entity.id, name="test-db-es", type="database"
) )
create_schema = CreateDatabaseSchemaRequest( create_schema = CreateDatabaseSchemaRequest(
name="test-schema", database=cls.db_reference name="test-schema-es", database=cls.db_reference
) )
create_schema_entity = cls.metadata.create_or_update(data=create_schema) create_schema_entity = cls.metadata.create_or_update(data=create_schema)
cls.schema_reference = EntityReference( cls.schema_reference = EntityReference(
id=create_schema_entity.id, name="test-schema", type="databaseSchema" id=create_schema_entity.id, name="test-schema-es", type="databaseSchema"
) )
create = CreateTableRequest( create = CreateTableRequest(
name="test", name="test-es",
databaseSchema=cls.schema_reference, databaseSchema=cls.schema_reference,
columns=[Column(name="id", dataType=DataType.BIGINT)], columns=[Column(name="id", dataType=DataType.BIGINT)],
) )
@ -131,6 +126,8 @@ class OMetaESTest(TestCase):
entity_type=Table, entity_type=Table,
service_name=self.service.name.__root__, service_name=self.service.name.__root__,
filters={"name": self.entity.name.__root__}, filters={"name": self.entity.name.__root__},
size=100,
retries=10,
) )
# We get the created table back # We get the created table back
@ -144,6 +141,8 @@ class OMetaESTest(TestCase):
"name": self.entity.name.__root__, "name": self.entity.name.__root__,
"database": self.db_reference.name, "database": self.db_reference.name,
}, },
size=100,
retries=10,
) )
self.assertIsNotNone(res) self.assertIsNotNone(res)
@ -157,6 +156,8 @@ class OMetaESTest(TestCase):
"database": self.db_reference.name, "database": self.db_reference.name,
"database_schema": self.schema_reference.name, "database_schema": self.schema_reference.name,
}, },
size=100,
retries=10,
) )
self.assertIsNotNone(res) self.assertIsNotNone(res)

View File

@ -143,6 +143,7 @@ class FQNBuildTest(TestCase):
database_name=self.db_reference.name, database_name=self.db_reference.name,
schema_name=None, schema_name=None,
table_name=self.entity.name.__root__, table_name=self.entity.name.__root__,
retries=5,
) )
self.assertEqual("test-service-table-fqn.test-db.test-schema.test", table_fqn) self.assertEqual("test-service-table-fqn.test-db.test-schema.test", table_fqn)
@ -154,6 +155,7 @@ class FQNBuildTest(TestCase):
database_name=None, database_name=None,
schema_name=None, schema_name=None,
table_name=self.entity.name.__root__, table_name=self.entity.name.__root__,
retries=5,
) )
self.assertEqual("test-service-table-fqn.test-db.test-schema.test", table_fqn) self.assertEqual("test-service-table-fqn.test-db.test-schema.test", table_fqn)

View File

@ -89,6 +89,7 @@ class TestFqn(TestCase):
Validate Table FQN building Validate Table FQN building
""" """
table_fqn = fqn.build( table_fqn = fqn.build(
..., # metadata client not needed with all params
entity_type=Table, entity_type=Table,
service_name="service", service_name="service",
database_name="db", database_name="db",
@ -98,6 +99,7 @@ class TestFqn(TestCase):
self.assertEqual(table_fqn, "service.db.schema.table") self.assertEqual(table_fqn, "service.db.schema.table")
table_fqn_dots = fqn.build( table_fqn_dots = fqn.build(
..., # metadata client not needed with all params
entity_type=Table, entity_type=Table,
service_name="service", service_name="service",
database_name="data.base", database_name="data.base",
@ -107,6 +109,7 @@ class TestFqn(TestCase):
self.assertEqual(table_fqn_dots, 'service."data.base".schema.table') self.assertEqual(table_fqn_dots, 'service."data.base".schema.table')
table_fqn_space = fqn.build( table_fqn_space = fqn.build(
..., # metadata client not needed with all params
entity_type=Table, entity_type=Table,
service_name="service", service_name="service",
database_name="data base", database_name="data base",