summaryrefslogtreecommitdiff
path: root/tests/test_api.py
blob: bd8e0ca857b9dd7d863822141d38018954090346 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# -*- coding: utf-8 -*-
import unittest

import datetime

from bvggrabber.api import QueryApi, Departure, fullformat


class TestQueryApi(unittest.TestCase):

    def test_call(self):
        q = QueryApi()
        self.assertRaises(NotImplementedError, q.call)


class TestDeparture(unittest.TestCase):

    def setUp(self):
        self.since = datetime.datetime(2013, 1, 2, 3, 4, 0)
        self.delta1 = datetime.timedelta(seconds=60)
        self.delta2 = datetime.timedelta(seconds=80)

    def test_timestamp_futur(self):
        when = self.since + self.delta1
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, 60)

        when = self.since + self.delta2
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, 120)

    def test_timestamp_now(self):
        when = self.since
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, 0)

    def test_timestamp_past(self):
        when = self.since - self.delta1
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, -60)

        when = self.since - self.delta2
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, -120)

    def test_string_futur(self):
        when = fullformat(self.since + self.delta1)
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, 60)

        when = fullformat(self.since + self.delta2)
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, 120)

    def test_string_now(self):
        when = fullformat(self.since)
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, 0)

    def test_string_past(self):
        when = fullformat(self.since - self.delta1)
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, -60)

        when = fullformat(self.since - self.delta2)
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, -120)

    def test_datetime_futur(self):
        when = self.since + self.delta1
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, 60)

        when = self.since + self.delta2
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, 120)

    def test_datetime_now(self):
        when = self.since
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, 0)

    def test_datetime_past(self):
        when = self.since - self.delta1
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, -60)

        when = self.since - self.delta2
        dep = Departure("from", "to", when, "line", since=self.since)
        diff = dep.remaining.total_seconds()
        self.assertEqual(diff, -120)

    def test_error(self):
        self.assertRaises(ValueError, Departure, "from", "to", "foo", "line")