def testReadableFormatterWithNonUtcTimezone(self):
     experiment = experiment_pb2.Experiment(
         experiment_id="deadbeef",
         name="A name for the experiment",
         description="A description for the experiment",
         num_runs=2,
         num_tags=4,
         num_scalars=60,
         total_blob_bytes=1234,
     )
     util.set_timestamp(experiment.create_time, 981173106)
     util.set_timestamp(experiment.update_time, 1015218367)
     experiment_url = "http://tensorboard.dev/deadbeef"
     formatter = formatters.ReadableFormatter()
     output = self._format(
         formatter,
         experiment,
         experiment_url,
         timezone="America/Los_Angeles",
     )
     expected_lines = [
         "http://tensorboard.dev/deadbeef",
         "\tName                 A name for the experiment",
         "\tDescription          A description for the experiment",
         "\tId                   deadbeef",
         "\tCreated              2001-02-02 20:05:06",
         "\tUpdated              2002-03-03 21:06:07",
         "\tRuns                 2",
         "\tTags                 4",
         "\tScalars              60",
         "\tBinary object bytes  1234",
     ]
     self.assertEqual(output.split("\n"), expected_lines)
 def testJsonFormatterWithEmptyNameAndDescription(self):
     experiment = experiment_pb2.Experiment(
         experiment_id="deadbeef",
         # NOTE(cais): `name` and `description` are missing here.
         num_runs=2,
         num_tags=4,
         num_scalars=60,
         total_blob_bytes=1234,
     )
     util.set_timestamp(experiment.create_time, 981173106)
     util.set_timestamp(experiment.update_time, 1015218367)
     experiment_url = "http://tensorboard.dev/deadbeef"
     formatter = formatters.JsonFormatter()
     output = self._format(formatter, experiment, experiment_url)
     expected_lines = [
         "{",
         '  "url": "http://tensorboard.dev/deadbeef",',
         '  "name": "",',
         '  "description": "",',
         '  "id": "deadbeef",',
         '  "created": "2001-02-03T04:05:06Z",',
         '  "updated": "2002-03-04T05:06:07Z",',
         '  "runs": 2,',
         '  "tags": 4,',
         '  "scalars": 60,',
         '  "binary_object_bytes": 1234',
         "}",
     ]
     self.assertEqual(output.split("\n"), expected_lines)
 def testReadableFormatterWithEmptyNameAndDescription(self):
     experiment = experiment_pb2.Experiment(
         experiment_id="deadbeef",
         # NOTE(cais): `name` and `description` are missing here.
         num_runs=2,
         num_tags=4,
         num_scalars=60,
         total_blob_bytes=1234,
     )
     util.set_timestamp(experiment.create_time, 981173106)
     util.set_timestamp(experiment.update_time, 1015218367)
     experiment_url = "http://tensorboard.dev/deadbeef"
     formatter = formatters.ReadableFormatter()
     output = self._format(formatter, experiment, experiment_url)
     expected_lines = [
         "http://tensorboard.dev/deadbeef",
         "\tName                 [No Name]",
         "\tDescription          [No Description]",
         "\tId                   deadbeef",
         "\tCreated              2001-02-03 04:05:06",
         "\tUpdated              2002-03-04 05:06:07",
         "\tRuns                 2",
         "\tTags                 4",
         "\tScalars              60",
         "\tBinary object bytes  1234",
     ]
     self.assertEqual(output.split("\n"), expected_lines)
Example #4
0
    def test_experiments_only(self):
        mock_api_client = _create_mock_api_client()

        def stream_experiments(request, **kwargs):
            del request  # unused
            response = export_service_pb2.StreamExperimentsResponse()
            response.experiments.add(experiment_id="789", name="one")
            response.experiments.add(experiment_id="012", description="two")
            yield response

        mock_api_client.StreamExperiments = mock.Mock(wraps=stream_experiments)
        gen = exporter_lib.list_experiments(mock_api_client)
        mock_api_client.StreamExperiments.assert_not_called()
        expected = [
            experiment_pb2.Experiment(experiment_id="789", name="one"),
            experiment_pb2.Experiment(experiment_id="012", description="two"),
        ]
        self.assertEqual(list(gen), expected)
Example #5
0
    def test_mixed_experiments_and_ids(self):
        mock_api_client = _create_mock_api_client()

        def stream_experiments(request, **kwargs):
            del request  # unused

            # Should ignore `experiment_ids` in the presence of `experiments`.
            response = export_service_pb2.StreamExperimentsResponse()
            response.experiment_ids.append("999")  # will be omitted
            response.experiments.add(experiment_id="789")
            response.experiments.add(experiment_id="012")
            yield response

        mock_api_client.StreamExperiments = mock.Mock(wraps=stream_experiments)
        gen = exporter_lib.list_experiments(mock_api_client)
        mock_api_client.StreamExperiments.assert_not_called()
        expected = [
            experiment_pb2.Experiment(experiment_id="789"),
            experiment_pb2.Experiment(experiment_id="012"),
        ]
        self.assertEqual(list(gen), expected)
Example #6
0
    def test_success(self):
        mock_client = _create_mock_client()
        new_name = "a new name"
        response = write_service_pb2.UpdateExperimentResponse()
        mock_client.UpdateExperiment.return_value = response

        uploader_lib.update_experiment_metadata(mock_client,
                                                "123",
                                                name=new_name)

        expected_request = write_service_pb2.UpdateExperimentRequest(
            experiment=experiment_pb2.Experiment(experiment_id="123",
                                                 name=new_name),
            experiment_mask=experiment_pb2.ExperimentMask(name=True),
        )
        mock_client.UpdateExperiment.assert_called_once()
        (args, _) = mock_client.UpdateExperiment.call_args
        self.assertEqual(args[0], expected_request)