Exemplo n.º 1
0
    def _validate(val, val_exp, field_type, driver):

        if field_type == 'date':
            return val == val_exp.isoformat()

        elif field_type == 'datetime':

            # some drivers do not support timezones. In this case, Fiona converts datetime fields with a timezone other
            # than UTC to UTC. Thus, both the datetime read by Fiona, as well as expected value are first converted to
            # UTC before compared.

            # Milliseconds
            if _driver_supports_milliseconds(driver):
                y, m, d, hh, mm, ss, ms, tz = parse_datetime(val)
                if tz is not None:
                    tz = TZ(tz)
                val_d = datetime.datetime(y, m, d, hh, mm, ss, ms, tz)
                return compare_datetimes_utc(val_d, val_exp)
            else:
                # No Milliseconds
                y, m, d, hh, mm, ss, ms, tz = parse_datetime(val)
                if tz is not None:
                    tz = TZ(tz)
                val_d = datetime.datetime(y, m, d, hh, mm, ss, ms, tz)
                return compare_datetimes_utc(val_d,
                                             val_exp.replace(microsecond=0))

        elif field_type == 'time':

            # some drivers do not support timezones. In this case, Fiona converts datetime fields with a timezone other
            # than UTC to UTC. Thus, both the time read by Fiona, as well as expected value are first converted to UTC
            # before compared.

            # Milliseconds
            if _driver_supports_milliseconds(driver):
                y, m, d, hh, mm, ss, ms, tz = parse_time(val)
                if tz is not None:
                    tz = TZ(tz)
                val_d = datetime.time(hh, mm, ss, ms, tz)
                return compare_times_utc(val_d, val_exp)
            else:
                # No Milliseconds
                y, m, d, hh, mm, ss, ms, tz = parse_time(val)
                if tz is not None:
                    tz = TZ(tz)
                val_d = datetime.time(hh, mm, ss, ms, tz)
                return compare_times_utc(val_d, val_exp.replace(microsecond=0))
        return False
Exemplo n.º 2
0
 def test_hhmmssoff(self):
     y, m, d, hh, mm, ss, ff = parse_time("10:11:12-01:00")
     self.failUnlessEqual(y, 0)
     self.failUnlessEqual(hh, 10)
     self.failUnlessEqual(mm, 11)
     self.failUnlessEqual(ss, 12)
     self.failUnlessEqual(ff, 0.0)
Exemplo n.º 3
0
 def test_hhmm(self):
     y, m, d, hh, mm, ss, ff = parse_time("10:11")
     self.failUnlessEqual(y, 0)
     self.failUnlessEqual(hh, 10)
     self.failUnlessEqual(mm, 11)
     self.failUnlessEqual(ss, 0)
     self.failUnlessEqual(ff, 0.0)
Exemplo n.º 4
0
 def test_hhmmssff(self):
     assert parse_time("10:11:12.42") == (0, 0, 0, 10, 11, 12,
                                          0.42 * 1000000)
Exemplo n.º 5
0
 def test_hhmmssoff2(self):
     assert parse_time("10:11:12+01:30") == (0, 0, 0, 10, 11, 12, 0.0, 90)
Exemplo n.º 6
0
 def test_hhmmssz(self):
     self.assertEqual(parse_time("10:11:12Z"), (0, 0, 0, 10, 11, 12, 0.0))
Exemplo n.º 7
0
 def test_hhmm(self):
     self.assertEqual(parse_time("10:11"), (0, 0, 0, 10, 11, 0, 0.0))
Exemplo n.º 8
0
 def test_hhmmssz(self):
     self.failUnlessEqual(
         parse_time("10:11:12Z"), (0, 0, 0, 10, 11, 12, 0.0))
Exemplo n.º 9
0
 def test_hhmm(self):
     self.failUnlessEqual(
         parse_time("10:11"), (0, 0, 0, 10, 11, 0, 0.0))
Exemplo n.º 10
0
 def test_error(self):
     with pytest.raises(ValueError):
         parse_time("xxx")
Exemplo n.º 11
0
 def test_hhmmssoff(self):
     assert parse_time("10:11:12-01:00") == (0, 0, 0, 10, 11, 12, 0.0)
Exemplo n.º 12
0
 def test_hhmmssz(self):
     assert parse_time("10:11:12Z") == (0, 0, 0, 10, 11, 12, 0.0)
Exemplo n.º 13
0
 def test_hhmmssff(self):
     assert parse_time("10:11:12.42") == (0, 0, 0, 10, 11, 12, 0.42*1000000)
Exemplo n.º 14
0
 def test_hhmm(self):
     assert parse_time("10:11") == (0, 0, 0, 10, 11, 0, 0.0)
Exemplo n.º 15
0
 def test_hhmmssz(self):
     assert parse_time("10:11:12Z") == (0, 0, 0, 10, 11, 12, 0.0)
Exemplo n.º 16
0
 def test_hhmmssoff(self):
     assert parse_time("10:11:12-01:00") == (0, 0, 0, 10, 11, 12, 0.0)
Exemplo n.º 17
0
 def test_error(self):
     with pytest.raises(ValueError):
         parse_time("xxx")
Exemplo n.º 18
0
 def test_hhmm(self):
     self.assertEqual(parse_time("10:11"), (0, 0, 0, 10, 11, 0, 0.0))
Exemplo n.º 19
0
 def test_hhmmssff(self):
     self.assertEqual(parse_time("10:11:12.42"), (0, 0, 0, 10, 11, 12, 0.42 * 1000000.0))
Exemplo n.º 20
0
 def test_hhmmssff(self):
     self.failUnlessEqual(
         parse_time("10:11:12.42"),
         (0, 0, 0, 10, 11, 12, 0.42*1000000.0))
Exemplo n.º 21
0
 def test_hhmmssz(self):
     self.assertEqual(parse_time("10:11:12Z"), (0, 0, 0, 10, 11, 12, 0.0))
Exemplo n.º 22
0
 def test_hhmmssoff(self):
     self.failUnlessEqual(
         parse_time("10:11:12-01:00"), (0, 0, 0, 10, 11, 12, 0.0))
Exemplo n.º 23
0
 def test_hhmmssoff(self):
     self.assertEqual(parse_time("10:11:12-01:00"), (0, 0, 0, 10, 11, 12, 0.0))
Exemplo n.º 24
0
 def test_hhmmssff(self):
     self.assertEqual(parse_time("10:11:12.42"),
                      (0, 0, 0, 10, 11, 12, 0.42 * 1000000.0))
Exemplo n.º 25
0
 def test_hhmm(self):
     assert parse_time("10:11") == (0, 0, 0, 10, 11, 0, 0.0)
Exemplo n.º 26
0
 def test_hhmmssoff(self):
     self.assertEqual(parse_time("10:11:12-01:00"),
                      (0, 0, 0, 10, 11, 12, 0.0))
Exemplo n.º 27
0
 def test_hhmmss(self):
     assert parse_time("10:11:12") == (0, 0, 0, 10, 11, 12, 0.0, None)