Skip to content

Commit

Permalink
Merge pull request #1176 from nlabriet/unique_name_per_class
Browse files Browse the repository at this point in the history
Unique resource name per resource class
  • Loading branch information
jluebbe committed May 17, 2023
2 parents 69fd553 + 1f0c904 commit c3253c4
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 4 deletions.
6 changes: 3 additions & 3 deletions labgrid/remote/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -630,17 +630,17 @@ def get_target_resources(self, place):
resources = {}
for resource_path in place.acquired_resources:
match = place.getmatch(resource_path)
(exporter, group_name, _, resource_name) = resource_path
(exporter, group_name, cls, resource_name) = resource_path
name = resource_name
if match.rename:
name = match.rename
resources[name] = self.resources[exporter][group_name][resource_name]
resources[(name, cls)] = self.resources[exporter][group_name][resource_name]
return resources

def get_target_config(self, place):
config = {}
resources = config['resources'] = []
for name, resource in self.get_target_resources(place).items():
for (name, _), resource in self.get_target_resources(place).items():
args = OrderedDict()
if name != resource.cls:
args['name'] = name
Expand Down
2 changes: 1 addition & 1 deletion labgrid/resource/remote.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ def on_resource_added(self, resource):
place = self.session.get_place(remote_place.name) # pylint: disable=no-member
resource_entries = self.session.get_target_resources(place) # pylint: disable=no-member
expanded = []
for resource_name, resource_entry in resource_entries.items():
for (resource_name, _), resource_entry in resource_entries.items():
new = target_factory.make_resource(
remote_place.target, resource_entry.cls, resource_name, resource_entry.args)
new.parent = remote_place
Expand Down
7 changes: 7 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,13 @@ def exporter(tmpdir, crossbar):
Broken:
RawSerialPort:
port: 'none'
Many:
NetworkSerialPort:
host: 'localhost'
port: 4000
NetworkService:
address: "192.168.0.1"
username: "root"
"""
)
spawn = pexpect.spawn(
Expand Down
28 changes: 28 additions & 0 deletions tests/test_crossbar.py
Original file line number Diff line number Diff line change
Expand Up @@ -464,3 +464,31 @@ def test_reservation_custom_config(place, exporter, tmpdir):
spawn.expect(pexpect.EOF)
spawn.close()
assert spawn.exitstatus == 0, spawn.before.strip()

def test_same_name_resources(place, exporter, tmpdir):
with pexpect.spawn('python -m labgrid.remote.client -p test add-named-match "testhost/Many/NetworkService" "samename"') as spawn:
spawn.expect(pexpect.EOF)
spawn.close()
assert spawn.exitstatus == 0, spawn.before.strip()

with pexpect.spawn('python -m labgrid.remote.client -p test add-named-match "testhost/Many/NetworkSerialPort" "samename"') as spawn:
spawn.expect(pexpect.EOF)
spawn.close()
assert spawn.exitstatus == 0, spawn.before.strip()

with pexpect.spawn('python -m labgrid.remote.client -p test acquire') as spawn:
spawn.expect(pexpect.EOF)
spawn.close()
assert spawn.exitstatus == 0, spawn.before.strip()

with pexpect.spawn('python -m labgrid.remote.client -p test env') as spawn:
spawn.expect(pexpect.EOF)
spawn.close()
assert spawn.exitstatus == 0, spawn.before.strip()
assert "NetworkService".encode("utf-8") in spawn.before.replace(b'\r\n', b'\n'), spawn.before.strip()
assert "NetworkSerialPort".encode("utf-8") in spawn.before.replace(b'\r\n', b'\n'), spawn.before.strip()

with pexpect.spawn('python -m labgrid.remote.client -p test release') as spawn:
spawn.expect(pexpect.EOF)
spawn.close()
assert spawn.exitstatus == 0, spawn.before.strip()

0 comments on commit c3253c4

Please sign in to comment.