|
5 | 5 | from conductor.client.http.api.schema_resource_api import SchemaResourceApi |
6 | 6 | from conductor.client.http.models.schema_def import SchemaDef, SchemaType |
7 | 7 | from conductor.client.orkes.orkes_schema_client import OrkesSchemaClient |
| 8 | +from tests.integration.retry_helpers import retry_on_transient, retry_on_status |
8 | 9 |
|
9 | 10 | SCHEMA_NAME = 'ut_schema' |
10 | 11 | SCHEMA_VERSION = 1 |
@@ -41,33 +42,40 @@ def test_init(self): |
41 | 42 | self.assertIsInstance(self.schema_client.schemaApi, SchemaResourceApi, message) |
42 | 43 |
|
43 | 44 | def test_registerSchema(self): |
44 | | - self.schema_client.register_schema(self.schemaDef) |
45 | | - response = self.schema_client.schemaApi.get_schema_by_name_and_version(name=SCHEMA_NAME, version=SCHEMA_VERSION) |
| 45 | + retry_on_transient(self.schema_client.register_schema, self.schemaDef) |
| 46 | + # A GET right after register can briefly 404 until the write propagates |
| 47 | + # on the shared dev server; retry the read rather than fail the test. |
| 48 | + response = retry_on_status( |
| 49 | + self.schema_client.schemaApi.get_schema_by_name_and_version, |
| 50 | + name=SCHEMA_NAME, version=SCHEMA_VERSION) |
46 | 51 | self.assertEqual(response.name, SCHEMA_NAME) |
47 | 52 | self.assertEqual(response.version, SCHEMA_VERSION) |
48 | 53 | self.assertEqual(response.type, SchemaType.JSON) |
49 | 54 |
|
50 | 55 | def test_getSchema(self): |
51 | | - self.schema_client.register_schema(self.schemaDef) |
52 | | - schema = self.schema_client.get_schema(SCHEMA_NAME, SCHEMA_VERSION) |
| 56 | + retry_on_transient(self.schema_client.register_schema, self.schemaDef) |
| 57 | + # A GET right after register can briefly 404 until the write propagates |
| 58 | + # on the shared dev server; retry the read rather than fail the test. |
| 59 | + schema = retry_on_status(self.schema_client.get_schema, |
| 60 | + SCHEMA_NAME, SCHEMA_VERSION) |
53 | 61 | self.assertEqual(schema.name, SCHEMA_NAME) |
54 | 62 | self.assertEqual(schema.version, SCHEMA_VERSION) |
55 | 63 |
|
56 | 64 | def test_getAllSchemas(self): |
57 | 65 | schemaDef2 = SchemaDef(name='ut_schema_2', version=1, type=SchemaType.JSON, data=schema, external_ref='http://example.com/2') |
58 | | - self.schema_client.register_schema(self.schemaDef) |
59 | | - self.schema_client.register_schema(schemaDef2) |
| 66 | + retry_on_transient(self.schema_client.register_schema, self.schemaDef) |
| 67 | + retry_on_transient(self.schema_client.register_schema, schemaDef2) |
60 | 68 | schemas = self.schema_client.get_all_schemas() |
61 | 69 | self.assertGreaterEqual(len(schemas), 2) |
62 | 70 |
|
63 | 71 | def test_deleteSchema(self): |
64 | | - self.schema_client.register_schema(self.schemaDef) |
| 72 | + retry_on_transient(self.schema_client.register_schema, self.schemaDef) |
65 | 73 | self.schema_client.delete_schema(SCHEMA_NAME, SCHEMA_VERSION) |
66 | 74 | with self.assertRaises(Exception): |
67 | 75 | self.schema_client.get_schema(SCHEMA_NAME, SCHEMA_VERSION) |
68 | 76 |
|
69 | 77 | def test_deleteSchemaByName(self): |
70 | | - self.schema_client.register_schema(self.schemaDef) |
| 78 | + retry_on_transient(self.schema_client.register_schema, self.schemaDef) |
71 | 79 | self.schema_client.delete_schema_by_name(SCHEMA_NAME) |
72 | 80 | with self.assertRaises(Exception): |
73 | 81 | self.schema_client.get_schema(SCHEMA_NAME, SCHEMA_VERSION) |
|
0 commit comments