Chronyk
Chronyk copied to clipboard
Tests fail
See
$ python test_chronyk.py
========================================================================= test session starts ==========================================================================
platform linux2 -- Python 2.7.10, pytest-2.8.5, py-1.4.31, pluggy-0.3.1
rootdir: /home/moose/GitHub/chr/Chronyk, inifile:
collected 72 items
test_chronyk.py .F.................FF.FFFF......................F..FFFF..........FFFFF.F
=============================================================================== FAILURES ===============================================================================
____________________________________________________________________________ test_guesstype ____________________________________________________________________________
def test_guesstype():
> assert guesstype(9001) == Chronyk(9001)
E assert Chronyk(1970-01-01 04:30:01) == Chronyk(1970-01-01 04:30:01)
E + where Chronyk(1970-01-01 04:30:01) = guesstype(9001)
E + and Chronyk(1970-01-01 04:30:01) = Chronyk(9001)
test_chronyk.py:21: AssertionError
_______________________________________________________________________ test_relative_seconds_1 ________________________________________________________________________
def test_relative_seconds_1():
> assert Chronyk("2 seconds ago").relativestring() == "just now"
E assert 'in 1 hour' == 'just now'
E - in 1 hour
E + just now
test_chronyk.py:97: AssertionError
_______________________________________________________________________ test_relative_seconds_2 ________________________________________________________________________
def test_relative_seconds_2():
> assert Chronyk("in 5 seconds").relativestring() == "just now"
E assert 'in 1 hour' == 'just now'
E - in 1 hour
E + just now
test_chronyk.py:100: AssertionError
_______________________________________________________________________ test_relative_minutes_1 ________________________________________________________________________
def test_relative_minutes_1():
> assert Chronyk("1 minute ago").relativestring() == "1 minute ago"
E assert 'in 1 hour' == '1 minute ago'
E - in 1 hour
E + 1 minute ago
test_chronyk.py:107: AssertionError
_______________________________________________________________________ test_relative_minutes_2 ________________________________________________________________________
def test_relative_minutes_2():
> assert Chronyk("in 2 minutes").relativestring() == "in 2 minutes"
E assert 'in 1 hour' == 'in 2 minutes'
E - in 1 hour
E + in 2 minutes
test_chronyk.py:110: AssertionError
________________________________________________________________________ test_relative_hours_1 _________________________________________________________________________
def test_relative_hours_1():
> assert Chronyk("1 hour ago").relativestring() == "1 hour ago"
E assert 'just now' == '1 hour ago'
E - just now
E + 1 hour ago
test_chronyk.py:113: AssertionError
________________________________________________________________________ test_relative_hours_2 _________________________________________________________________________
def test_relative_hours_2():
> assert Chronyk("in 2 hours").relativestring() == "in 2 hours"
E assert 'in 3 hours' == 'in 2 hours'
E - in 3 hours
E ? ^
E + in 2 hours
E ? ^
test_chronyk.py:116: AssertionError
__________________________________________________________________________ test_operators_eq ___________________________________________________________________________
def test_operators_eq():
timest = time.time()
> assert Chronyk(timest) - 5 == Chronyk(timest - 5) and Chronyk(timest, timezone=0) == timest
E assert ((Chronyk(2016-01-07 10:59:02) - 5) == Chronyk(2016-01-07 10:58:57))
E + where Chronyk(2016-01-07 10:59:02) = Chronyk(1452157142.589508)
E + and Chronyk(2016-01-07 10:58:57) = Chronyk((1452157142.589508 - 5))
test_chronyk.py:208: AssertionError
__________________________________________________________________________ test_operators_ne ___________________________________________________________________________
def test_operators_ne():
timest = time.time()
> assert Chronyk(timest) != Chronyk(timest - 2)
E assert Chronyk(2016-01-07 10:59:02) != Chronyk(2016-01-07 10:59:00)
E + where Chronyk(2016-01-07 10:59:02) = Chronyk(1452157142.605754)
E + and Chronyk(2016-01-07 10:59:00) = Chronyk((1452157142.605754 - 2))
test_chronyk.py:221: AssertionError
_________________________________________________________________________ test_operators_ltgt __________________________________________________________________________
def test_operators_ltgt():
timest = time.time()
> assert Chronyk(timest) > Chronyk(timest - 5)
E assert Chronyk(2016-01-07 10:59:02) > Chronyk(2016-01-07 10:58:57)
E + where Chronyk(2016-01-07 10:59:02) = Chronyk(1452157142.620057)
E + and Chronyk(2016-01-07 10:58:57) = Chronyk((1452157142.620057 - 5))
test_chronyk.py:225: AssertionError
__________________________________________________________________________ test_operators_add __________________________________________________________________________
def test_operators_add():
timest = time.time()
> assert Chronyk(timest) + ChronykDelta(5) == Chronyk(timest + 5)
E TypeError: unsupported operand type(s) for +: 'instance' and 'instance'
test_chronyk.py:236: TypeError
__________________________________________________________________________ test_operators_sub __________________________________________________________________________
def test_operators_sub():
timest = time.time()
> assert Chronyk(timest) - Chronyk(timest - 5) == ChronykDelta(5)
E TypeError: unsupported operand type(s) for -: 'instance' and 'instance'
test_chronyk.py:241: TypeError
_______________________________________________________________________ test_delta_operators_eq ________________________________________________________________________
def test_delta_operators_eq():
> assert ChronykDelta(5) == ChronykDelta(5) and ChronykDelta(5) == 5
E assert (ChronykDelta(5 seconds) == ChronykDelta(5 seconds))
E + where ChronykDelta(5 seconds) = ChronykDelta(5)
E + and ChronykDelta(5 seconds) = ChronykDelta(5)
test_chronyk.py:278: AssertionError
_______________________________________________________________________ test_delta_operators_neq _______________________________________________________________________
def test_delta_operators_neq():
> assert ChronykDelta(5) != ChronykDelta(6) and ChronykDelta(5) != 3
E assert (ChronykDelta(5 seconds) != ChronykDelta(6 seconds))
E + where ChronykDelta(5 seconds) = ChronykDelta(5)
E + and ChronykDelta(6 seconds) = ChronykDelta(6)
test_chronyk.py:281: AssertionError
______________________________________________________________________ test_delta_operators_ltgt _______________________________________________________________________
def test_delta_operators_ltgt():
assert ChronykDelta(5) > ChronykDelta(4) and ChronykDelta(5) > 3
assert ChronykDelta(5) < ChronykDelta(7) and ChronykDelta(5) < 9
> assert ChronykDelta(5) >= ChronykDelta(5) and ChronykDelta(5) >= 3
E assert (ChronykDelta(5 seconds) >= ChronykDelta(5 seconds))
E + where ChronykDelta(5 seconds) = ChronykDelta(5)
E + and ChronykDelta(5 seconds) = ChronykDelta(5)
test_chronyk.py:286: AssertionError
_______________________________________________________________________ test_delta_operators_add _______________________________________________________________________
def test_delta_operators_add():
timest = time.time()
> assert ChronykDelta(5) + ChronykDelta(-5) == 0
E TypeError: unsupported operand type(s) for +: 'instance' and 'instance'
test_chronyk.py:291: TypeError
_______________________________________________________________________ test_delta_operators_sub _______________________________________________________________________
def test_delta_operators_sub():
assert ChronykDelta(5) - 5 == 0
> assert ChronykDelta(5) - ChronykDelta(1) == 4
E TypeError: unsupported operand type(s) for -: 'instance' and 'instance'
test_chronyk.py:297: TypeError
_______________________________________________________________________ test_delta_operators_div _______________________________________________________________________
def test_delta_operators_div():
> assert ChronykDelta(10) / 2 == 5
E TypeError: unsupported operand type(s) for /: 'instance' and 'int'
test_chronyk.py:303: TypeError
================================================================= 18 failed, 54 passed in 4.23 seconds =================================================================
Also for Python 3.4.3+:
$ python3 test_chronyk.py
========================================================================= test session starts ==========================================================================
platform linux -- Python 3.4.3 -- py-1.4.30 -- pytest-2.7.2
rootdir: /home/moose/GitHub/chr/Chronyk, inifile:
collected 72 items
test_chronyk.py ...................FF.FFFF..............................................
=============================================================================== FAILURES ===============================================================================
_______________________________________________________________________ test_relative_seconds_1 ________________________________________________________________________
def test_relative_seconds_1():
> assert Chronyk("2 seconds ago").relativestring() == "just now"
E assert 'in 1 hour' == 'just now'
E - in 1 hour
E + just now
test_chronyk.py:97: AssertionError
_______________________________________________________________________ test_relative_seconds_2 ________________________________________________________________________
def test_relative_seconds_2():
> assert Chronyk("in 5 seconds").relativestring() == "just now"
E assert 'in 1 hour' == 'just now'
E - in 1 hour
E + just now
test_chronyk.py:100: AssertionError
_______________________________________________________________________ test_relative_minutes_1 ________________________________________________________________________
def test_relative_minutes_1():
> assert Chronyk("1 minute ago").relativestring() == "1 minute ago"
E assert 'in 1 hour' == '1 minute ago'
E - in 1 hour
E + 1 minute ago
test_chronyk.py:107: AssertionError
_______________________________________________________________________ test_relative_minutes_2 ________________________________________________________________________
def test_relative_minutes_2():
> assert Chronyk("in 2 minutes").relativestring() == "in 2 minutes"
E assert 'in 1 hour' == 'in 2 minutes'
E - in 1 hour
E + in 2 minutes
test_chronyk.py:110: AssertionError
________________________________________________________________________ test_relative_hours_1 _________________________________________________________________________
def test_relative_hours_1():
> assert Chronyk("1 hour ago").relativestring() == "1 hour ago"
E assert 'just now' == '1 hour ago'
E - just now
E + 1 hour ago
test_chronyk.py:113: AssertionError
________________________________________________________________________ test_relative_hours_2 _________________________________________________________________________
def test_relative_hours_2():
> assert Chronyk("in 2 hours").relativestring() == "in 2 hours"
E assert 'in 3 hours' == 'in 2 hours'
E - in 3 hours
E ? ^
E + in 2 hours
E ? ^
test_chronyk.py:116: AssertionError
================================================================= 6 failed, 66 passed in 5.33 seconds ==================================================================
I believe this exposes an issue where strings like "n hours ago" are being interpreted as n - 1 hours ago.