33import pytest
44import logging
55
6+ from typing import override
67from time import sleep
78from random import shuffle
89from configparser import ConfigParser
9- from abc import ABC , abstractmethod
10+ from abc import abstractmethod
1011from typing import Optional
1112from datetime import datetime
1213
2829 ViewOnlyAndOfflineWalletTester ,
2930 WalletNotificationCollector ,
3031 MiningUtils , SendAndUpdateTxsTester ,
31- SyncWithPoolSubmitTester
32+ SyncWithPoolSubmitTester , BaseTestClass
3233)
3334
3435logger : logging .Logger = logging .getLogger ("TestMoneroWalletCommon" )
3536
3637
3738# Base class for common wallet tests
38- class BaseTestMoneroWallet (ABC ):
39+ class BaseTestMoneroWallet (BaseTestClass ):
3940 """Common wallet tests that every Monero wallet implementation should support"""
4041 CREATED_WALLET_KEYS_ERROR : str = "Wallet created from keys is not connected to authenticated daemon"
4142 _test_wallet : Optional [MoneroWallet ] = None
@@ -177,50 +178,27 @@ def wallet(self) -> MoneroWallet:
177178 """Test wallet instance"""
178179 pytest .skip ("No wallet test instance setup" )
179180
180- # Setup and teardown of test class
181- @pytest .fixture (scope = "class" , autouse = True )
182- def global_setup_and_teardown (self ):
183- """Executed once before all tests"""
184- self .before_all ()
185- yield
186- self .after_all ()
187-
188- # Setup and teardown of each test
189- @pytest .fixture (autouse = True )
190- def setup_and_teardown (self , request : pytest .FixtureRequest ):
191- self .before_each (request )
192- yield
193- self .after_each (request )
194-
195181 # Before all tests
182+ @override
196183 def before_all (self ) -> None :
197- """Executed once before all tests"""
198- logger .info (f"Setup test class { type (self ).__name__ } " )
184+ super ().before_all ()
199185 IntegrationTestUtils .setup (self .get_wallet_type ())
200186
201187 # After all tests
188+ @override
202189 def after_all (self ) -> None :
203- """Executed once after all tests"""
204- logger .info (f"Teardown test class { type (self ).__name__ } " )
205- daemon : MoneroDaemonRpc | None = self ._get_test_daemon ()
206- try :
207- daemon .stop_mining ()
208- except Exception as e :
209- logger .debug (str (e ))
190+ super ().after_all ()
191+ daemon : MoneroDaemonRpc = self ._get_test_daemon ()
192+ MiningUtils .try_stop_mining (daemon )
210193
211194 # close wallet
212195 wallet = self .get_test_wallet ()
213196 wallet .close (True )
214197
215198 # Before each test
199+ @override
216200 def before_each (self , request : pytest .FixtureRequest ) -> None :
217- """
218- Executed before each test
219-
220- :param pytest.FixtureRequest: Request fixture
221- """
222- logger .info (f"Before { request .node .name } " ) # type: ignore
223-
201+ super ().before_each (request )
224202 daemon = self ._get_test_daemon ()
225203 wallet = self .get_test_wallet ()
226204 status = daemon .get_mining_status ()
@@ -229,14 +207,9 @@ def before_each(self, request: pytest.FixtureRequest) -> None:
229207 wallet .stop_mining ()
230208
231209 # After each test
210+ @override
232211 def after_each (self , request : pytest .FixtureRequest ) -> None :
233- """
234- Executed after each test
235-
236- :param pytest.FixtureRequest: Request fixture
237- """
238- logger .info (f"After { request .node .name } " ) # type: ignore
239-
212+ super ().after_each (request )
240213 daemon = self ._get_test_daemon ()
241214 status = daemon .get_mining_status ()
242215
0 commit comments