Changeset 26220ba in OpenWorkouts-current for ow/tests/test_utilities.py


Ignore:
Timestamp:
Jan 25, 2019, 12:48:51 AM (5 years ago)
Author:
Borja Lopez <borja@…>
Branches:
current, feature/docs, master
Children:
d0fc76b, ed7e9d7
Parents:
c6219ed (diff), 5bdfbfb (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge patches from darcs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ow/tests/test_utilities.py

    rc6219ed r26220ba  
    11import os
    2 from datetime import timedelta
     2from datetime import timedelta, datetime
    33from unittest.mock import patch
    44from pyexpat import ExpatError
     
    2222    mps_to_kmph,
    2323    kmph_to_mps,
    24     save_map_screenshot
     24    save_map_screenshot,
     25    timedelta_to_hms,
     26    get_week_days
    2527)
    2628
     
    144146        assert not os.makedirs.called
    145147        subprocess.run.assert_called_once
     148
     149    def test_timedelta_to_hms(self):
     150        value = timedelta(seconds=0)
     151        assert timedelta_to_hms(value) == (0, 0, 0)
     152        value = timedelta(seconds=3600)
     153        assert timedelta_to_hms(value) == (1, 0, 0)
     154        value = timedelta(seconds=3900)
     155        assert timedelta_to_hms(value) == (1, 5, 0)
     156        value = timedelta(seconds=3940)
     157        assert timedelta_to_hms(value) == (1, 5, 40)
     158        value = timedelta(seconds=4)
     159        assert timedelta_to_hms(value) == (0, 0, 4)
     160        value = timedelta(seconds=150)
     161        assert timedelta_to_hms(value) == (0, 2, 30)
     162        # try now something that is not a timedelta
     163        with pytest.raises(AttributeError):
     164            timedelta_to_hms('not a timedelta')
     165
     166    def test_week_days(self):
     167        # get days from a monday, week starting on monday
     168        days = get_week_days(datetime(2019, 1, 21))
     169        assert len(days) == 7
     170        matches = [
     171            [days[0], datetime(2019, 1, 21)],
     172            [days[1], datetime(2019, 1, 22)],
     173            [days[2], datetime(2019, 1, 23)],
     174            [days[3], datetime(2019, 1, 24)],
     175            [days[4], datetime(2019, 1, 25)],
     176            [days[5], datetime(2019, 1, 26)],
     177            [days[6], datetime(2019, 1, 27)]
     178        ]
     179        for m in matches:
     180            assert m[0] == m[1]
     181        # get days from a wednesday, week starting on monday
     182        days = get_week_days(datetime(2019, 1, 23))
     183        assert len(days) == 7
     184        matches = [
     185            [days[0], datetime(2019, 1, 21)],
     186            [days[1], datetime(2019, 1, 22)],
     187            [days[2], datetime(2019, 1, 23)],
     188            [days[3], datetime(2019, 1, 24)],
     189            [days[4], datetime(2019, 1, 25)],
     190            [days[5], datetime(2019, 1, 26)],
     191            [days[6], datetime(2019, 1, 27)]
     192        ]
     193        for m in matches:
     194            assert m[0] == m[1]
     195        # get days from a monday, but week starting on sunday now
     196        days = get_week_days(datetime(2019, 1, 21), start_day=0)
     197        assert len(days) == 7
     198        matches = [
     199            [days[0], datetime(2019, 1, 20)],
     200            [days[1], datetime(2019, 1, 21)],
     201            [days[2], datetime(2019, 1, 22)],
     202            [days[3], datetime(2019, 1, 23)],
     203            [days[4], datetime(2019, 1, 24)],
     204            [days[5], datetime(2019, 1, 25)],
     205            [days[6], datetime(2019, 1, 26)]
     206        ]
     207        for m in matches:
     208            assert m[0] == m[1]
    146209
    147210
Note: See TracChangeset for help on using the changeset viewer.