コード例 #1
0
    def test_that_observation_can_be_updated_when_minute_already_exists(self):
        Minute.objects.create(datetime=self.datetime)

        create_observation(self.liverpool, self.datetime, 123.45, False)
        create_observation(self.liverpool, self.datetime, 45.67, False)

        assert_equal(45.67, Observation.objects.get().sea_level)
コード例 #2
0
    def test_that_observation_can_be_updated_when_minute_already_exists(self):
        Minute.objects.create(datetime=self.datetime)

        create_observation(self.liverpool, self.datetime, 123.45, False)
        create_observation(self.liverpool, self.datetime, 45.67, False)

        assert_equal(45.67, Observation.objects.get().sea_level)
コード例 #3
0
 def _setup_all_ok(self):
     create_observation(
         self.liverpool,
         BASE_TIME - datetime.timedelta(minutes=10),
         4.5,
         True)
     self.southampton.delete()
コード例 #4
0
    def save(self, *args, **kwargs):
        linked_location = self.tide_gauge.linked_location
        if linked_location is not None:
            create_observation(linked_location, self.datetime, self.height,
                               False)

        super(RawMeasurement, self).save(*args, **kwargs)
コード例 #5
0
    def save(self, *args, **kwargs):
        linked_location = self.tide_gauge.linked_location
        if linked_location is not None:
            create_observation(
                linked_location, self.datetime, self.height, False)

        super(RawMeasurement, self).save(*args, **kwargs)
コード例 #6
0
    def test_that_observations_from_liverpool_dont_affect_southampton(self):
        create_observation(
            self.liverpool,
            BASE_TIME - datetime.timedelta(minutes=self.OK_MINUTES - 1),
            10.0, True)

        with freeze_time(BASE_TIME):
            (ok, text) = check_observations(self.southampton)

        assert_equal(False, ok)
        assert_equal('> 2 hours old', text)
コード例 #7
0
    def test_that_observations_more_recent_than_one_hour_are_ok(self):
        create_observation(
            self.liverpool,
            BASE_TIME - datetime.timedelta(minutes=self.OK_MINUTES - 1),
            10.0, True)

        with freeze_time(BASE_TIME):
            (ok, text) = check_observations(self.liverpool)

        assert_equal(True, ok)
        assert_equal('OK', text)
コード例 #8
0
    def setUpClass(cls):
        super(TestSeaLevelsViewShowsObservations, cls).setUpClass()
        base_time = datetime.datetime(2014, 6, 1, 10, 30, tzinfo=pytz.UTC)
        for minute, tide_level in [(0, 5.0), (1, 5.1), (2, 5.2)]:
            create_tide_prediction(
                cls.location, base_time + datetime.timedelta(minutes=minute),
                tide_level)

        create_observation(cls.location,
                           base_time + datetime.timedelta(minutes=1), 4.8,
                           True)
コード例 #9
0
    def test_that_observations_from_liverpool_dont_affect_southampton(self):
        create_observation(
            self.liverpool,
            BASE_TIME - datetime.timedelta(minutes=self.OK_MINUTES - 1), 10.0,
            True)

        with freeze_time(BASE_TIME):
            (ok, text) = check_observations(self.southampton)

        assert_equal(False, ok)
        assert_equal('> 2 hours old', text)
コード例 #10
0
    def test_that_observations_more_recent_than_one_hour_are_ok(self):
        create_observation(
            self.liverpool,
            BASE_TIME - datetime.timedelta(minutes=self.OK_MINUTES - 1), 10.0,
            True)

        with freeze_time(BASE_TIME):
            (ok, text) = check_observations(self.liverpool)

        assert_equal(True, ok)
        assert_equal('OK', text)
コード例 #11
0
    def _setup_all_ok(self):

        create_tide_prediction(
            self.liverpool,
            BASE_TIME + datetime.timedelta(days=31),
            5.0)
        _make_good_surge_predictions(self.liverpool)
        create_observation(
            self.liverpool,
            BASE_TIME - datetime.timedelta(minutes=10),
            4.5,
            True)
        self.southampton.delete()  # so that it doesn't come up as a failure
コード例 #12
0
def update_observations(station, stdout):
    if observations_up_to_date(station):
        stdout.write("Nothing to do for {}".format(station))
        return

    stdout.write("Converting measurements at {} => {}".format(
        station, station.location))

    start = get_latest_observation(station.location)
    end = get_latest_ea_measurement(station)

    for dt, value, is_interp in make_linear_interpolations(start, end):
        new_value = convert_to_chart_datum(station, value)
        create_observation(station.location, dt, new_value, is_interp)
コード例 #13
0
    def setUpClass(cls):
        super(TestSeaLevelsViewShowsObservations, cls).setUpClass()
        base_time = datetime.datetime(2014, 6, 1, 10, 30, tzinfo=pytz.UTC)
        for minute, tide_level in [(0, 5.0), (1, 5.1), (2, 5.2)]:
            create_tide_prediction(
                cls.location,
                base_time + datetime.timedelta(minutes=minute),
                tide_level
            )

        create_observation(
            cls.location,
            base_time + datetime.timedelta(minutes=1),
            4.8, True)
コード例 #14
0
 def test_that_observation_can_be_created_when_minute_doesnt_exist(self):
     create_observation(self.liverpool, self.datetime, 123.45, False)
     assert_equal(123.45, Observation.objects.get().sea_level)
コード例 #15
0
 def _make_bad_observations(self):
     create_observation(
         self.liverpool,
         BASE_TIME - datetime.timedelta(minutes=self.OK_MINUTES + 1),
         10.0, True)
コード例 #16
0
 def _setup_all_ok(self):
     create_observation(self.liverpool,
                        BASE_TIME - datetime.timedelta(minutes=10), 4.5,
                        True)
     self.southampton.delete()
コード例 #17
0
 def test_that_up_to_date_observations_does_nothing(self):
     self.make_two_measurements()
     create_observation(self.station.location, self.datetime_2, 10, False)
     update_observations(self.station, sys.stdout)
     assert_equal(1, Observation.objects.all().count())
コード例 #18
0
 def test_that_observation_can_be_created_when_minute_doesnt_exist(self):
     create_observation(self.liverpool, self.datetime, 123.45, False)
     assert_equal(123.45, Observation.objects.get().sea_level)
コード例 #19
0
 def _make_bad_observations(self):
     create_observation(
         self.liverpool,
         BASE_TIME - datetime.timedelta(minutes=self.OK_MINUTES + 1), 10.0,
         True)