test API: allow passing resource requirements
For all those API functions that directly use reserved_resources.get(), add a
'specifics' argument to be able to pick specific resources. For example, this
allows to pick a suite.bts(specifics={'type': 'osmo-bts-sysmo'})
I needed this to test error reporting for over-using resources, but will most
probably make sense in the future.
Change-Id: If6f175f4bb53dec5306fb3c6479202a7bf1c7116
diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py
index b88b8b2..fb6cf36 100644
--- a/src/osmo_gsm_tester/suite.py
+++ b/src/osmo_gsm_tester/suite.py
@@ -286,8 +286,8 @@
return
self.reserved_resources.free()
- def ip_address(self):
- return self.reserved_resources.get(resource.R_IP_ADDRESS)
+ def ip_address(self, specifics=None):
+ return self.reserved_resources.get(resource.R_IP_ADDRESS, specifics=specifics)
def nitb(self, ip_address=None):
if ip_address is None:
@@ -314,11 +314,11 @@
ip_address = self.ip_address()
return osmo_bsc.OsmoBsc(self, msc, ip_address)
- def bts(self):
- return bts_obj(self, self.reserved_resources.get(resource.R_BTS))
+ def bts(self, specifics=None):
+ return bts_obj(self, self.reserved_resources.get(resource.R_BTS, specifics=specifics))
- def modem(self):
- conf = self.reserved_resources.get(resource.R_MODEM)
+ def modem(self, specifics=None):
+ conf = self.reserved_resources.get(resource.R_MODEM, specifics=specifics)
self.dbg('create Modem object', conf=conf)
modem = ofono_client.Modem(conf)
self.register_for_cleanup(modem)