@@ -27,7 +27,14 @@ def __init__(self, name: str, version: str) -> None:
27
27
def __repr__ (self ) -> str :
28
28
return self .name
29
29
30
- def start (self ) -> None :
30
+ def __enter__ (self ):
31
+ self ._start ()
32
+ return self
33
+
34
+ def __exit__ (self , exception_type , exception_value , traceback ):
35
+ self ._stop ()
36
+
37
+ def _start (self ) -> None :
31
38
print (f"Starting CrateDB { self } ..." )
32
39
self .tmp = tempfile .mkdtemp ()
33
40
settings = {
@@ -41,7 +48,7 @@ def start(self) -> None:
41
48
self .node .start ()
42
49
print (f"CrateDB { self } started" )
43
50
44
- def stop (self ) -> None :
51
+ def _stop (self ) -> None :
45
52
print (f"Stopping CrateDB { self } ..." )
46
53
self .node .stop ()
47
54
shutil .rmtree (self .tmp , ignore_errors = True )
@@ -83,10 +90,8 @@ def crate_version(self, pytestconfig) -> Generator[str, None, None]:
83
90
@pytest .fixture (scope = "session" )
84
91
def crate_layer (self ) -> CrateLayerFactoryGenerator :
85
92
def layer_factory (name : str , version : str ):
86
- layer = CrateLayer (name , version )
87
- layer .start ()
88
- yield layer
89
- layer .stop ()
93
+ with CrateLayer (name , version ) as layer :
94
+ yield layer
90
95
yield layer_factory
91
96
92
97
@pytest .fixture (scope = "session" )
@@ -97,9 +102,8 @@ def crate(self, crate_layer, crate_version) -> CrateLayerGenerator:
97
102
98
103
@pytest .fixture
99
104
def crate_cursor (self , crate ) -> Generator [Cursor , None , None ]:
100
- connection = connect (crate .dsn ())
101
- yield connection .cursor ()
102
- connection .close ()
105
+ with connect (crate .dsn ()) as connection :
106
+ yield connection .cursor ()
103
107
104
108
@pytest .fixture
105
109
def crate_execute (self , crate_cursor ) -> Generator [Callable , None , None ]:
0 commit comments