コード例 #1
0
 def test_easter_egg(self) -> None:
     self.client_mock.hello.return_value = "Hello world"
     with labby_config(LABBY_CONFIG):
         (rc, stdout, _stderr) = self.main(["hello"])
     self.client_mock.hello.assert_called_once_with()
     self.assertEqual(rc, 0)
     self.assertEqual(stdout, "Hello world\n")
コード例 #2
0
ファイル: test_cli.py プロジェクト: motte/labby
 def test_run_sequence(self) -> None:
     with labby_config(LABBY_CONFIG):
         (rc, stdout, stderr) = self.main(["run", "sequence/test.yml"])
     self.client_mock.run_sequence.assert_called_once_with("sequence/test.yml")
     self.assertEqual(rc, 0)
     self.assertEqual(stdout, "")
     self.assertEqual(stderr, "")
コード例 #3
0
 def test_experiment_status_without_any_experiments_running(self) -> None:
     self.client_mock.experiment_status.return_value = ExperimentStatusResponse(
         sequence_status=None, )
     with labby_config(LABBY_CONFIG):
         (rc, stdout, stderr) = self.main(["status"])
     self.client_mock.experiment_status.assert_called_once_with()
     self.assertEqual(rc, 0)
     self.assertEqual(stdout, "There are no experiments running.\n")
コード例 #4
0
 def test_invalid_device_info(self) -> None:
     self.client_mock.device_info.return_value = DeviceInfoResponse(
         device_type=None, is_connected=False)
     with labby_config(LABBY_CONFIG):
         (rc, stdout, stderr) = self.main(["device-info", "foobar"])
     self.client_mock.device_info.assert_called_once_with("foobar")
     self.assertEqual(rc, 1)
     self.assertIn("[x] Unknown device foobar", stdout)
コード例 #5
0
 def test_run_without_sequence_file(self) -> None:
     with labby_config(LABBY_CONFIG):
         (rc, stdout, stderr) = self.main(["run"])
     self.assertEqual(rc, 2)
     self.assertTrue("usage: labby" in stderr)
     self.assertTrue(
         "labby run: error: the following arguments are required:" +
         " sequence_filename\n" in stderr)
コード例 #6
0
ファイル: test_cli.py プロジェクト: motte/labby
 def test_list_devices(self) -> None:
     self.client_mock.list_devices.return_value = ListDevicesResponse(
         devices=[DeviceStatus(name="virtual-power-supply", is_available=True)]
     )
     with labby_config(LABBY_CONFIG):
         (rc, stdout, stderr) = self.main(["devices"])
     self.assertEqual(rc, 0)
     self.assertIn("[+] virtual-power-supply", stdout)
コード例 #7
0
 def test_list_unavailable_devices(self) -> None:
     self.client_mock.list_devices.return_value = ListDevicesResponse(
         devices=[
             DeviceStatus(
                 name="broken-power-supply",
                 is_available=False,
                 error_type="Unavailable",
                 error_message="Device is unavailable",
             )
         ])
     with labby_config(LABBY_CONFIG):
         (rc, stdout, stderr) = self.main(["devices"])
     self.assertEqual(rc, 0)
     self.assertIn("[x] broken-power-supply", stdout)
コード例 #8
0
 def test_device_that_cannot_be_opened(self) -> None:
     self.client_mock.device_info.return_value = DeviceInfoResponse(
         device_type=DeviceType.POWER_SUPPLY,
         is_connected=False,
         error_type="Unavailable",
         error_message="Unavailable device",
     )
     with patch("labby.hw.virtual.power_supply.PowerSupply.open",
                side_effect=Exception):
         with labby_config(LABBY_CONFIG):
             (rc, stdout,
              stderr) = self.main(["device-info", "virtual-power-supply"])
     self.client_mock.device_info.assert_called_once_with(
         "virtual-power-supply")
     self.assertEqual(rc, 0)
     self.assertIn("Connection   [x] Error", stdout)
コード例 #9
0
ファイル: test_cli.py プロジェクト: motte/labby
 def test_available_device_info(self) -> None:
     self.client_mock.device_info.return_value = DeviceInfoResponse(
         device_type=DeviceType.POWER_SUPPLY,
         is_connected=True,
         power_supply_info=PowerSupplyInfo(
             is_output_on=False,
             mode=PowerSupplyMode.CONSTANT_VOLTAGE,
             actual_current=0.0,
             actual_voltage=0.0,
             target_current=0.0,
             target_voltage=0.0,
         ),
     )
     with labby_config(LABBY_CONFIG):
         (rc, stdout, stderr) = self.main(["device-info", "virtual-power-supply"])
     self.client_mock.device_info.assert_called_once_with("virtual-power-supply")
     self.assertEqual(rc, 0)
     self.assertIn("Connection       [+] OK", stdout)
コード例 #10
0
 def test_experiment_status(self) -> None:
     self.client_mock.experiment_status.return_value = ExperimentStatusResponse(
         sequence_status=ExperimentSequenceStatus(experiments=[
             ExperimentStatus(name="exp001",
                              state=ExperimentState.FINISHED,
                              progress=1.0),
             ExperimentStatus(name="exp002",
                              state=ExperimentState.RUNNING,
                              progress=0.25),
             ExperimentStatus(name="exp003",
                              state=ExperimentState.NOT_STARTED,
                              progress=0.0),
         ]), )
     with labby_config(LABBY_CONFIG):
         (rc, stdout, stderr) = self.main(["status"])
     self.client_mock.experiment_status.assert_called_once_with()
     self.assertEqual(rc, 0)
     self.assertIn("[+] exp001", stdout)
     self.assertIn("▶ exp002 (25%)", stdout)
     self.assertIn("  exp003", stdout)
コード例 #11
0
 def test_server_stop(self) -> None:
     with labby_config(LABBY_CONFIG):
         (rc, stdout, _stderr) = self.main(["server", "stop"])
     self.assertEqual(rc, 0)
コード例 #12
0
 def test_server_status_timeout(self) -> None:
     self.client_mock.hello.side_effect = Timeout("Shits broken yo", 42)
     with labby_config(LABBY_CONFIG):
         (rc, stdout, _stderr) = self.main(["server", "status"])
     self.assertIn("[x] Timeout", stdout)
     self.assertEqual(rc, 1)
コード例 #13
0
 def test_server_status_active(self) -> None:
     self.client_mock.hello.return_value = "Hello world"
     with labby_config(LABBY_CONFIG):
         (rc, stdout, _stderr) = self.main(["server", "status"])
     self.assertIn("Active", stdout)
     self.assertEqual(rc, 0)
コード例 #14
0
 def test_server_start(self, _makedirs: MagicMock,
                       _fork_mock: MagicMock) -> None:
     with labby_config(LABBY_CONFIG), patch_file_contents(".labby/pid"):
         (rc, stdout, _stderr) = self.main(["server", "start"])
     self.assertEqual(rc, 0)