GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( 34b696...ada075 )
by Jason
01:05
created

ReservablePricePerPersonTestCase.setUp()   A

Complexity

Conditions 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 1
dl 0
loc 7
rs 9.4286
1
import datetime
2
from decimal import Decimal
3
4
from dateutil import relativedelta
5
from django.conf import settings
6
from django.core.urlresolvers import reverse
7
from django.test import Client, RequestFactory
8
from django.utils.translation import activate
9
from shoop.core.models import ShopProduct
10
11
from kakaravaara.tests import KakaravaaraTestsBase
12
from reservations.factories import ReservableProductFactory, ReservationFactory
13
from reservations.models import Reservation
14
from shoop.xtheme.theme import set_current_theme
15
16
17
class ReservationsGetReservedDatesTestCase(KakaravaaraTestsBase):
18
19
    def setUp(self):
20
        super(ReservationsGetReservedDatesTestCase, self).setUp()
21
        self.reservable = ReservableProductFactory()
22
23
    def test_get_reserved_dates_returns_correct_dates(self):
24
        ReservationFactory(
25
            reservable=self.reservable,
26
            start_time=datetime.datetime(year=2015, month=6, day=30, hour=15),
27
            end_time=datetime.datetime(year=2015, month=7, day=5, hour=12)
28
        )
29
        ReservationFactory(
30
            reservable=self.reservable,
31
            start_time=datetime.datetime(year=2015, month=7, day=10, hour=12),
32
            end_time=datetime.datetime(year=2015, month=7, day=15, hour=12)
33
        )
34
        dates = self.reservable.get_reserved_dates(
0 ignored issues
show
Bug introduced by
The Instance of ReservableProductFactory does not seem to have a member named get_reserved_dates.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
35
            start=datetime.date(year=2015, month=5, day=1),
36
            end=datetime.date(year=2015, month=8, day=1)
37
        )
38
        self.assertEquals(len(dates), 10)
0 ignored issues
show
Bug introduced by
The Instance of ReservationsGetReservedDatesTestCase does not seem to have a member named assertEquals.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
39
40
    def test_get_reserved_dates_for_period_returns_correct_dates(self):
41
        self.reservable2 = ReservableProductFactory()
42
        ReservationFactory(
43
            reservable=self.reservable,
44
            start_time=datetime.datetime(year=2015, month=6, day=30, hour=15),
45
            end_time=datetime.datetime(year=2015, month=7, day=5, hour=12)
46
        )
47
        ReservationFactory(
48
            reservable=self.reservable2,
49
            start_time=datetime.datetime(year=2015, month=7, day=10, hour=12),
50
            end_time=datetime.datetime(year=2015, month=7, day=15, hour=12)
51
        )
52
        dates = Reservation.get_reserved_days_for_period(
53
            start_date=datetime.date(year=2015, month=6, day=30),
54
            end_date=datetime.date(year=2015, month=7, day=15)
55
        )
56
        self.assertEquals(len(dates), 10)
0 ignored issues
show
Bug introduced by
The Instance of ReservationsGetReservedDatesTestCase does not seem to have a member named assertEquals.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
57
58
    def test_is_period_free(self):
59
        ReservationFactory(
60
            reservable=self.reservable,
61
            start_time=datetime.datetime(year=2015, month=6, day=30, hour=15),
62
            end_time=datetime.datetime(year=2015, month=7, day=5, hour=12)
63
        )
64
        ReservationFactory(
65
            reservable=self.reservable,
66
            start_time=datetime.datetime(year=2015, month=7, day=10, hour=12),
67
            end_time=datetime.datetime(year=2015, month=7, day=15, hour=12)
68
        )
69
        self.assertFalse(self.reservable.is_period_days_free(
0 ignored issues
show
Bug introduced by
The Instance of ReservationsGetReservedDatesTestCase does not seem to have a member named assertFalse.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
Bug introduced by
The Instance of ReservableProductFactory does not seem to have a member named is_period_days_free.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
70
            datetime.date(year=2015, month=6, day=27),
71
            datetime.date(year=2015, month=7, day=3)
72
        ))
73
        self.assertTrue(self.reservable.is_period_days_free(
0 ignored issues
show
Bug introduced by
The Instance of ReservationsGetReservedDatesTestCase does not seem to have a member named assertTrue.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
Bug introduced by
The Instance of ReservableProductFactory does not seem to have a member named is_period_days_free.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
74
            datetime.date(year=2015, month=6, day=27),
75
            datetime.date(year=2015, month=6, day=29)
76
        ))
77
        self.assertTrue(self.reservable.is_period_days_free(
0 ignored issues
show
Bug introduced by
The Instance of ReservationsGetReservedDatesTestCase does not seem to have a member named assertTrue.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
Bug introduced by
The Instance of ReservableProductFactory does not seem to have a member named is_period_days_free.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
78
            datetime.date(year=2015, month=6, day=27),
79
            datetime.date(year=2015, month=6, day=30)
80
        ))
81
82
83
class ReservableViewsBaseTestCase(KakaravaaraTestsBase):
84
    def setUp(self):
85
        super(ReservableViewsBaseTestCase, self).setUp()
86
        activate("en")
87
        set_current_theme("shoop_simple_theme")
88
        self.client = Client()
89
90
91
class ReservableSearchViewTestCase(ReservableViewsBaseTestCase):
92
    def setUp(self):
93
        super(ReservableSearchViewTestCase, self).setUp()
94
        self.reservable = ReservableProductFactory()
95
        self.reservation = ReservationFactory(
96
            reservable=self.reservable,
97
            start_time=datetime.datetime.today(),
98
            end_time=datetime.datetime.today() + datetime.timedelta(days=3)
99
        )
100
        self.response = self.client.get(reverse('reservations:reservable.search'))
101
        self.today = datetime.date.today()
102
        self.next = datetime.date.today() + relativedelta.relativedelta(months=1)
103
104
    def test_view_responds(self):
105
        self.assertContains(self.response, u"Select months to search from")
0 ignored issues
show
Bug introduced by
The Instance of ReservableSearchViewTestCase does not seem to have a member named assertContains.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
106
107
    def test_context_data(self):
108
        context = self.response.context_data
109
        self.assertEqual(list(context["reservables"]), [self.reservable])
1 ignored issue
show
Bug introduced by
The Instance of ReservableSearchViewTestCase does not seem to have a member named assertEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
110
        self.assertEqual(context["start_month"], self.today.strftime("%m/%Y"))
1 ignored issue
show
Bug introduced by
The Instance of ReservableSearchViewTestCase does not seem to have a member named assertEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
111
        self.assertEqual(context["end_month"], self.next.strftime("%m/%Y"))
1 ignored issue
show
Bug introduced by
The Instance of ReservableSearchViewTestCase does not seem to have a member named assertEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
112
        self.assertEqual(
1 ignored issue
show
Bug introduced by
The Instance of ReservableSearchViewTestCase does not seem to have a member named assertEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
113
            context["start_date"],
114
            (self.today + relativedelta.relativedelta(day=1)).strftime("%Y-%m-%d %H:%M")
115
        )
116
        self.assertEqual(
1 ignored issue
show
Bug introduced by
The Instance of ReservableSearchViewTestCase does not seem to have a member named assertEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
117
            context["end_date"],
118
            (self.today + relativedelta.relativedelta(day=1, months=+2, days=-1)).strftime("%Y-%m-%d %H:%M")
119
        )
120
        self.assertEqual(context["reserved_days"], {
1 ignored issue
show
Bug introduced by
The Instance of ReservableSearchViewTestCase does not seem to have a member named assertEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
121
            self.reservable.product.sku: [
122
                self.today.strftime("%Y-%m-%d"),
123
                (self.today + datetime.timedelta(days=1)).strftime("%Y-%m-%d"),
124
                (self.today + datetime.timedelta(days=2)).strftime("%Y-%m-%d"),
125
            ]
126
        })
127
        self.assertEqual(context["visible_attributes"], settings.RESERVABLE_SEARCH_VISIBLE_ATTRIBUTES)
1 ignored issue
show
Bug introduced by
The Instance of ReservableSearchViewTestCase does not seem to have a member named assertEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
128
        self.assertEqual(
1 ignored issue
show
Bug introduced by
The Instance of ReservableSearchViewTestCase does not seem to have a member named assertEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
129
            context["months"],
130
            [
131
                self.today.strftime("%Y-%m"),
132
                (self.today + relativedelta.relativedelta(months=1)).strftime("%Y-%m"),
133
            ]
134
        )
135
136
137
class DateRangeCheckViewTestCase(ReservableViewsBaseTestCase):
138
    def setUp(self):
139
        super(DateRangeCheckViewTestCase, self).setUp()
140
        self.reservable = ReservableProductFactory()
141
        self.reservation = ReservationFactory(
142
            reservable=self.reservable,
143
            start_time=datetime.datetime.today(),
144
            end_time=datetime.datetime.today() + datetime.timedelta(days=3)
145
        )
146
        self.today = datetime.date.today()
147
        self.next = datetime.date.today() + relativedelta.relativedelta(months=1)
148
149
    def test_view_returns_bad_request_on_missing_parameters(self):
150
        response = self.client.get(reverse('reservations:check_period'))
151
        self.assertEqual(response.status_code, 400)
1 ignored issue
show
Bug introduced by
The Instance of DateRangeCheckViewTestCase does not seem to have a member named assertEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
152
        url = "%s?reservable_id=1" % reverse('reservations:check_period')
153
        response = self.client.get(url)
154
        self.assertEqual(response.status_code, 400)
1 ignored issue
show
Bug introduced by
The Instance of DateRangeCheckViewTestCase does not seem to have a member named assertEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
155
        url = "%s?start=2015-10-01" % reverse('reservations:check_period')
156
        response = self.client.get(url)
157
        self.assertEqual(response.status_code, 400)
1 ignored issue
show
Bug introduced by
The Instance of DateRangeCheckViewTestCase does not seem to have a member named assertEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
158
        url = "%s?end=2015-10-01" % reverse('reservations:check_period')
159
        response = self.client.get(url)
160
        self.assertEqual(response.status_code, 400)
1 ignored issue
show
Bug introduced by
The Instance of DateRangeCheckViewTestCase does not seem to have a member named assertEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
161
162
    def test_free_period_should_return_period_is_free(self):
163
        request = RequestFactory().get("/")
164
        request.shop = self.shop
165
        response = self.client.get(
166
            "%s?reservable_id=%s&start=%s&end=%s" % (
167
                reverse('reservations:check_period'),
168
                self.reservable.id,
0 ignored issues
show
Bug introduced by
The Instance of ReservableProductFactory does not seem to have a member named id.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
169
                self.next.strftime("%Y-%m-%d"),
170
                (self.next + datetime.timedelta(days=3)).strftime("%Y-%m-%d")
171
            )
172
        )
173
        self.assertJSONEqual(response.content.decode("utf-8"), {
0 ignored issues
show
Bug introduced by
The Instance of DateRangeCheckViewTestCase does not seem to have a member named assertJSONEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
174
            "result": True,
175
            "price": {
176
                "total": str((self.reservable.product.get_price(request) * 3).quantize(Decimal("1.00"))),
177
            }
178
        })
179
180
    def test_reserved_period_should_return_period_is_reserved(self):
181
        response = self.client.get(
182
            "%s?reservable_id=%s&start=%s&end=%s" % (
183
                reverse('reservations:check_period'),
184
                self.reservable.id,
0 ignored issues
show
Bug introduced by
The Instance of ReservableProductFactory does not seem to have a member named id.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
185
                self.today.strftime("%Y-%m-%d"),
186
                (self.today + datetime.timedelta(days=10)).strftime("%Y-%m-%d")
187
            )
188
        )
189
        self.assertJSONEqual(response.content.decode("utf-8"), {
0 ignored issues
show
Bug introduced by
The Instance of DateRangeCheckViewTestCase does not seem to have a member named assertJSONEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
190
            "result": False,
191
            "price": None,
192
        })
193
194
195
class ReservablePricePerPersonTestCase(KakaravaaraTestsBase):
196
    def setUp(self):
197
        super(ReservablePricePerPersonTestCase, self).setUp()
198
        self.request = RequestFactory().get("/")
199
        self.request.GET = {"persons": 3}
200
        self.request.shop = self.shop
201
        self.reservable = ReservableProductFactory(
202
            pricing_per_person_included=0, pricing_per_person_price=Decimal("10.00"),
203
        )
204
205
    def test_reservable_with_pricing_per_person_disabled_person_count_doesnt_change_price(self):
206
        self.reservable.pricing_per_person = False
207
        self.reservable.save()
0 ignored issues
show
Bug introduced by
The Instance of ReservableProductFactory does not seem to have a member named save.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
208
        price = self.reservable.product.get_price(self.request, quantity=1).quantize(Decimal("1.00"))
209
        shop_product = ShopProduct.objects.get(product_id=self.reservable.product_id, shop=self.shop)
0 ignored issues
show
Bug introduced by
The Instance of ReservableProductFactory does not seem to have a member named product_id.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
210
        self.assertEqual(price, shop_product.default_price)
1 ignored issue
show
Bug introduced by
The Instance of ReservablePricePerPersonTestCase does not seem to have a member named assertEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
211
212
    def test_reservable_with_pricing_per_person_active_person_count_changes_price(self):
213
        self.reservable.pricing_per_person = True
214
        self.reservable.save()
0 ignored issues
show
Bug introduced by
The Instance of ReservableProductFactory does not seem to have a member named save.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
215
        price = self.reservable.product.get_price(self.request, quantity=1).quantize(Decimal("1.00"))
216
        shop_product = ShopProduct.objects.get(product_id=self.reservable.product_id, shop=self.shop)
0 ignored issues
show
Bug introduced by
The Instance of ReservableProductFactory does not seem to have a member named product_id.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
217
        self.assertAlmostEqual(price.value, shop_product.default_price_value + 3 * Decimal("10.00"), 6)
0 ignored issues
show
Bug introduced by
The Instance of ReservablePricePerPersonTestCase does not seem to have a member named assertAlmostEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
218
219
    def test_reservable_with_pricing_per_person_included_count_zero(self):
220
        self.reservable.pricing_per_person = True
221
        self.reservable.save()
0 ignored issues
show
Bug introduced by
The Instance of ReservableProductFactory does not seem to have a member named save.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
222
        price = self.reservable.product.get_price(self.request, quantity=1).quantize(Decimal("1.00"))
223
        shop_product = ShopProduct.objects.get(product_id=self.reservable.product_id, shop=self.shop)
0 ignored issues
show
Bug introduced by
The Instance of ReservableProductFactory does not seem to have a member named product_id.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
224
        self.assertAlmostEqual(price.value, shop_product.default_price_value + 3 * Decimal("10.00"), 6)
0 ignored issues
show
Bug introduced by
The Instance of ReservablePricePerPersonTestCase does not seem to have a member named assertAlmostEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
225
226
    def test_reservable_with_pricing_per_person_included_count_above_zero(self):
227
        self.reservable.pricing_per_person = True
228
        self.reservable.pricing_per_person_included = 2
229
        self.reservable.save()
0 ignored issues
show
Bug introduced by
The Instance of ReservableProductFactory does not seem to have a member named save.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
230
        price = self.reservable.product.get_price(self.request, quantity=1).quantize(Decimal("1.00"))
231
        shop_product = ShopProduct.objects.get(product_id=self.reservable.product_id, shop=self.shop)
0 ignored issues
show
Bug introduced by
The Instance of ReservableProductFactory does not seem to have a member named product_id.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
232
        self.assertAlmostEqual(price.value, shop_product.default_price_value + Decimal("10.00"), 6)
0 ignored issues
show
Bug introduced by
The Instance of ReservablePricePerPersonTestCase does not seem to have a member named assertAlmostEqual.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
233