11import time
22
3+ from requests .exceptions import HTTPError
4+
35from tests .integration import BaseIntegrationTest
46
57
@@ -11,6 +13,7 @@ class EntityIntegrationTest(BaseIntegrationTest):
1113 def __init__ (self , * args , ** kwargs ):
1214 super (EntityIntegrationTest , self ).__init__ (* args , ** kwargs )
1315 self .endpoints = None
16+ self .entity_id : str = ""
1417
1518 def entities_selector (self ):
1619 """
@@ -20,8 +23,21 @@ def entities_selector(self):
2023 return {"tags" : "INTEGRATION-TEST" }
2124
2225 def tearDown (self ):
23- for entity in [e for e in self .endpoints .list (query = self .entities_selector ())]:
24- self .endpoints .delete (entity ["_id" ])
26+ """Delete only the current test entity if it still exists after test.
27+
28+ Warn if the filtering fails, failsafe attempt to delete the entity anyways.
29+ """
30+ tagged_test_entity_id_list = [e ["_id" ] for e in self .endpoints .list (query = self .entities_selector ())]
31+ try :
32+ if self .entity_id not in tagged_test_entity_id_list :
33+ print (
34+ f"WARNING: Entity with ID { self .entity_id } not found in the list of tagged entities:"
35+ f" { tagged_test_entity_id_list } "
36+ )
37+ self .endpoints .delete (self .entity_id )
38+
39+ except HTTPError as e :
40+ print (f"WARNING: Failed to delete entity with ID { self .entity_id } : { e } " )
2541
2642 def get_default_config (self ):
2743 """
@@ -33,9 +49,10 @@ def get_default_config(self):
3349 def create_entity (self , kwargs = None ):
3450 entity = self .get_default_config ()
3551 entity .update (kwargs or {})
36- entity ["tags" ] = entity .get ("tags" , [])
37- entity ["tags" ].append ("INTEGRATION-TEST" )
38- return self .endpoints .create (entity )
52+ entity .setdefault ("tags" , []).append ("INTEGRATION-TEST" )
53+ created_entity = self .endpoints .create (entity )
54+ self .entity_id = created_entity ["_id" ]
55+ return created_entity
3956
4057 def list_entities_test (self ):
4158 entity = self .create_entity ()
@@ -47,9 +64,10 @@ def get_entity_by_id_test(self):
4764
4865 def create_entity_test (self ):
4966 name = "test-{}" .format (time .time ())
50- job = self .create_entity ({"name" : name })
51- self .assertEqual (job ["name" ], name )
52- self .assertIsNotNone (job ["_id" ])
67+ entity = self .create_entity ({"name" : name })
68+ self .assertEqual (entity ["name" ], name )
69+ self .assertIsNotNone (entity ["_id" ])
70+ self .assertIn ("INTEGRATION-TEST" , entity ["tags" ])
5371
5472 def delete_entity_test (self ):
5573 entity = self .create_entity ()
0 commit comments