def test_bad_load_sensor_repository(external_repo_context, capfd): freeze_datetime = to_timezone( create_pendulum_time(year=2019, month=2, day=27, hour=23, minute=59, second=59, tz="UTC"), "US/Central", ) with instance_with_sensors(external_repo_context) as ( instance, grpc_server_registry, external_repo, ): with pendulum.test(freeze_datetime): external_sensor = external_repo.get_external_sensor( "simple_sensor") valid_origin = external_sensor.get_external_origin() # Swap out a new repository name invalid_repo_origin = ExternalJobOrigin( ExternalRepositoryOrigin( valid_origin.external_repository_origin. repository_location_origin, "invalid_repo_name", ), valid_origin.job_name, ) instance.add_job_state( JobState(invalid_repo_origin, JobType.SENSOR, JobStatus.RUNNING)) assert instance.get_runs_count() == 0 ticks = instance.get_job_ticks(invalid_repo_origin.get_id()) assert len(ticks) == 0 evaluate_sensors(instance, grpc_server_registry) assert instance.get_runs_count() == 0 ticks = instance.get_job_ticks(invalid_repo_origin.get_id()) assert len(ticks) == 0 captured = capfd.readouterr() assert "Sensor daemon caught an error for sensor simple_sensor" in captured.out assert ( "Could not find repository invalid_repo_name in location test_location to run sensor simple_sensor" in captured.out)
def test_origin_ids_stable(): # This test asserts fixed schedule origin IDs to prevent any changes from # accidentally shifting these ids that are persisted to ScheduleStorage python_origin = ExternalJobOrigin( ExternalRepositoryOrigin( ManagedGrpcPythonEnvRepositoryLocationOrigin( LoadableTargetOrigin( executable_path="/fake/executable", python_file="/fake/file/path", attribute="fake_attribute", ) ), "fake_repo", ), "fake_schedule", ) assert python_origin.get_id() == "eb01cc697463ba614a67567fdeaafcccc60f0fc4" grpc_origin = ExternalJobOrigin( ExternalRepositoryOrigin( GrpcServerRepositoryLocationOrigin(host="fakehost", port=52618), "repo_name" ), "fake_schedule", ) assert grpc_origin.get_id() == "0961ecddbddfc71104adf036ebe8cd97a94dc77b"