Exemple #1
0
    def test_fix_dst(self):
        d = {'filename': 'irrelevant',
             'datafile_fields': '0',
             'datafile_format': 'irrelevant'}
        d.update(self.datafiledict)
        df = Datafile_simple('http://irrelevant/', {}, d)
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 2, 59)),
                         datetime(2012, 10, 28, 1, 59))
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 3, 00)),
                         datetime(2012, 10, 28, 3, 00))
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 4, 00)),
                         datetime(2012, 10, 28, 4, 00))

        # Now we pretend that the switch from dst hasn't occurred yet.
        # This is the only case when loggertodb should assume that
        # ambiguous times refer to before the switch.
        athens = pytz.timezone('Europe/Athens')
        now = athens.localize(datetime(2012, 10, 28, 3, 59), is_dst=True)
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 2, 59), now=now),
                         datetime(2012, 10, 28, 1, 59))
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 3, 00), now=now),
                         datetime(2012, 10, 28, 2, 00))
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 4, 00), now=now),
                         datetime(2012, 10, 28, 4, 00))

        # Once more; the switch from DST has just occurred; now it
        # should be assumed that ambiguous times refer to after the
        # switch.
        now = athens.localize(datetime(2012, 10, 28, 3, 0), is_dst=False)
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 2, 59), now=now),
                         datetime(2012, 10, 28, 1, 59))
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 3, 00), now=now),
                         datetime(2012, 10, 28, 3, 00))
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 4, 00), now=now),
                         datetime(2012, 10, 28, 4, 00))
Exemple #2
0
 def run_test(self):
     if not self.base_url:
         return
     d = {'filename': full_testdata_filename(self.filename),
          'datafile_fields': str(self.timeseries_id),
          'datafile_format': 'irrelevant'}
     d.update(self.datafiledict)
     df = Datafile_simple(self.base_url, self.cookies, d)
     df.update_database()
     enhydris_api.read_tsdata(self.base_url, self.cookies, self.ts)
     self.assertEqual(len(self.ts), len(self.ref_ts))
     (items, ritems) = [x.items() for x in (self.ts, self.ref_ts)]
     for item, ritem in zip(items, ritems):
         self.assertEqual(item[0], ritem[0])
         self.assertAlmostEqual(item[1], ritem[1], 4)
         self.assertEqual(item[1].flags, ritem[1].flags)