def test_anonymous_telemetry_with_no_repo_id() -> None: with temporary_dir() as buildroot: with environment_as(PANTS_BUILDROOT_OVERRIDE=buildroot): opts = create_options_bootstrapper([]).bootstrap_options run_tracker = RunTracker(opts) run_tracker.start(run_start_time=time.time(), specs=[]) run_tracker.end_run(PANTS_SUCCEEDED_EXIT_CODE) repo_id = "" telemetry = run_tracker.get_anonymous_telemetry_data(repo_id) # Check that these keys have non-trivial values. for key in ( "run_id", "timestamp", "duration", "outcome", "platform", "python_implementation", "python_version", "pants_version", ): assert bool(telemetry.get(key)) for key in ("repo_id", "machine_id", "user_id"): assert telemetry.get(key) == ""
def test_anonymous_telemetry(monkeypatch, tmp_path: Path, **kwargs) -> None: frozen_time = kwargs["frozen_time"] buildroot = tmp_path.as_posix() with environment_as(PANTS_BUILDROOT_OVERRIDE=buildroot): ob = create_options_bootstrapper([]) opts = ob.bootstrap_options monkeypatch.setattr(opts, "_goals", ["test", "customgoal", "lint"]) run_tracker = RunTracker(ob.args, opts) run_tracker.start(run_start_time=time.time(), specs=[]) frozen_time.tick(delta=datetime.timedelta(seconds=1)) run_tracker.end_run(PANTS_SUCCEEDED_EXIT_CODE) repo_id = "A" * 36 telemetry = run_tracker.get_anonymous_telemetry_data(repo_id) # Check that all keys have non-trivial values. for key in ( "run_id", "timestamp", "duration", "outcome", "platform", "python_implementation", "python_version", "pants_version", "repo_id", "machine_id", "user_id", "standard_goals", "num_goals", ): assert bool(telemetry.get(key)) # Verify a few easy-to-check values. assert telemetry["timestamp"] == "1578657601.0" assert telemetry["duration"] == "1.0" assert telemetry["outcome"] == "SUCCESS" assert telemetry["standard_goals"] == ["test", "lint"] assert telemetry["num_goals"] == "3"