(device_key)
| 476 | @pytest.mark.skipif(not env.has_rpc(), reason="need rpc") |
| 477 | @pytest.mark.parametrize("device_key", ["test_device", "127.0.0.1:5555"]) |
| 478 | def test_rpc_tracker_register(device_key): |
| 479 | # test registration |
| 480 | tracker = Tracker(port=9000, port_end=10000) |
| 481 | server1 = rpc.Server( |
| 482 | host="127.0.0.1", |
| 483 | port=9000, |
| 484 | port_end=10000, |
| 485 | key=device_key, |
| 486 | tracker_addr=("127.0.0.1", tracker.port), |
| 487 | ) |
| 488 | server2 = rpc.Server( |
| 489 | host="127.0.0.1", |
| 490 | port=9000, |
| 491 | port_end=10000, |
| 492 | key=device_key, |
| 493 | tracker_addr=("127.0.0.1", tracker.port), |
| 494 | custom_addr="test_addr", # this is a test address, which is unable to connect |
| 495 | ) |
| 496 | time.sleep(1) |
| 497 | client = rpc.connect_tracker("127.0.0.1", tracker.port) |
| 498 | |
| 499 | def exist_address(summary, key, host, port): |
| 500 | server_info = summary["server_info"] |
| 501 | for device in server_info: |
| 502 | if device["key"] == f"server:{key}": |
| 503 | addr = device["addr"] |
| 504 | if (host is None or host == addr[0]) and port == addr[1]: |
| 505 | return True |
| 506 | return False |
| 507 | |
| 508 | summary = client.summary() |
| 509 | assert summary["queue_info"][device_key]["free"] == 2 |
| 510 | assert exist_address(summary, device_key, "127.0.0.1", server1.port) |
| 511 | assert exist_address(summary, device_key, "test_addr", server2.port) |
| 512 | |
| 513 | remote = client.request(device_key) |
| 514 | summary = client.summary() |
| 515 | assert summary["queue_info"][device_key]["free"] == 1 |
| 516 | |
| 517 | del remote |
| 518 | time.sleep(1) |
| 519 | |
| 520 | summary = client.summary() |
| 521 | assert summary["queue_info"][device_key]["free"] == 2 |
| 522 | |
| 523 | server1.terminate() |
| 524 | time.sleep(1) |
| 525 | |
| 526 | summary = client.summary() |
| 527 | assert summary["queue_info"][device_key]["free"] == 1 |
| 528 | assert not exist_address(summary, device_key, "127.0.0.1", server1.port) |
| 529 | assert exist_address(summary, device_key, "test_addr", server2.port) |
| 530 | |
| 531 | server2.terminate() |
| 532 | time.sleep(1) |
| 533 | |
| 534 | summary = client.summary() |
| 535 | assert summary["queue_info"][device_key]["free"] == 0 |
nothing calls this directly
no test coverage detected
searching dependent graphs…