Ejemplo n.º 1
0
 def test_when_server_returns_invalid_data(self):
     server = FakeJoule()
     server.response = "notjson"
     self.start_server(server)
     runner = CliRunner()
     result = runner.invoke(main, ['module', 'list'])
     self.assertTrue('Error' in result.output)
     self.assertEqual(result.exit_code, 1)
     self.stop_server()
Ejemplo n.º 2
0
 def test_when_server_returns_error_code(self):
     server = FakeJoule()
     error_msg = "test error"
     error_code = 500
     server.response = error_msg
     server.http_code = error_code
     self.start_server(server)
     runner = CliRunner()
     result = runner.invoke(main, ['module', 'list'])
     self.assertTrue('%d' % error_code in result.output)
     self.assertTrue(error_msg in result.output)
     self.assertEqual(result.exit_code, 1)
     self.stop_server()
Ejemplo n.º 3
0
 def test_when_server_returns_error_code(self):
     server = FakeJoule()
     server.response = "test error"
     server.http_code = 500
     server.stub_annotation = True
     self.start_server(server)
     runner = CliRunner()
     result = runner.invoke(main,
                            ['stream', 'annotations', 'folder/stream'])
     self.assertIn('500', result.output)
     self.assertIn("test error", result.output)
     self.assertEqual(result.exit_code, 1)
     self.stop_server()
Ejemplo n.º 4
0
 def test_lists_streams_with_options(self):
     server = FakeJoule()
     with open(FOLDER_LIST, 'r') as f:
         server.response = f.read()
     self.start_server(server)
     runner = CliRunner()
     result = runner.invoke(main, ['folder', 'list', '-s', '-l'])
     self.assertEqual(result.exit_code, 0)
     output = result.output
     # check for the augmented legend
     self.assertTrue("configured" in output)
     # check for layout strings
     self.assertTrue("float32_3" in output)
     self.stop_server()
Ejemplo n.º 5
0
 def test_reteives_time_bounded_annotations(self):
     server = FakeJoule()
     with open(ANNOTATION_LIST, 'r') as f:
         server.response = f.read()
     self.start_server(server)
     runner = CliRunner()
     result = runner.invoke(main, [
         'stream', 'annotations', '/my/stream', '--start',
         '28 Jun 2019 16:00', '--end', '29 Jun 2019 16:00'
     ])
     self.assertEqual(result.exit_code, 0)
     query_params = self.msgs.get()
     self.assertEqual(query_params["start"], "1561752000000000")
     self.assertEqual(query_params["end"], "1561838400000000")
     self.stop_server()
Ejemplo n.º 6
0
 def test_lists_all_annotations_table(self):
     server = FakeJoule()
     with open(ANNOTATION_LIST, 'r') as f:
         server.response = f.read()
     self.start_server(server)
     runner = CliRunner()
     result = runner.invoke(main, ['stream', 'annotations', '/my/stream'])
     self.assertEqual(result.exit_code, 0)
     output = result.output
     # check for a few lines in the table
     self.assertIn("Instant", output)
     # timestamps should be displayed as dates
     self.assertNotIn("1561753681898272", output)
     self.assertIn("Fri, 28 Jun 2019 16:05:47", output)
     self.stop_server()
Ejemplo n.º 7
0
 def test_lists_folders(self):
     server = FakeJoule()
     with open(FOLDER_LIST, 'r') as f:
         server.response = f.read()
     self.start_server(server)
     runner = CliRunner()
     result = runner.invoke(main, ['folder', 'list'])
     self.assertEqual(result.exit_code, 0)
     output = result.output
     # make sure the folders are listed
     for folder in ['basic', 'aux', 'event', 'sensors']:
         self.assertTrue(folder in output)
     # make sure the data streams are listed
     for stream in ['Accel', 'Encoder', 'Gyro']:
         self.assertTrue(stream in output)
     # make sure the event streams are listed
     for stream in ['events0', 'events1', 'events2']:
         self.assertTrue(stream in output)
     # should  check for layout strings
     self.assertFalse("float32_3" in output)
     self.stop_server()
Ejemplo n.º 8
0
 def test_lists_annotations_csv(self):
     server = FakeJoule()
     with open(ANNOTATION_LIST, 'r') as f:
         server.response = f.read()
     self.start_server(server)
     runner = CliRunner()
     result = runner.invoke(
         main, ['stream', 'annotations', '/my/stream', '--csv'])
     self._assert_no_error(result)
     output = result.output
     lines = output.split("\n")
     reader = csv.reader(lines[1:])
     annotations = []
     for row in reader:
         annotations.append(row)
     # first annotation is an event
     self.assertEqual(
         ['Instant', 'instant temperature', '1561752347819968'],
         annotations[0])
     # second annoation is a range with no comment
     self.assertEqual(
         ['hot!!!', '', '1561861116610000', '1561862838572000'],
         annotations[1])
     self.stop_server()