Example #1
0
 def test_sameday(self):
     # Test for same day less than 5h
     dt_out = self.dt_in + datetime.timedelta(hours=4)
     self.assertEqual(0, compute_rates(self.rates, self.dt_in, dt_out)[0])
     # Test for same day over 5h OK
     dt_out = self.dt_in + datetime.timedelta(hours=6)
     self.assertEqual(40, compute_rates(self.rates, self.dt_in, dt_out)[0])
     # Test for same day over 10h OK
     dt_out = self.dt_in + datetime.timedelta(hours=11)
     self.assertEqual(86.5, compute_rates(self.rates, self.dt_in, dt_out)[0])
Example #2
0
    def test_multinights(self):
        # Test for 2x24h, less than 5 hours
        dt_out = self.dt_in + datetime.timedelta(days=2, hours=1)
        self.assertEqual(633, compute_rates(self.rates, self.dt_in, dt_out)[0])

        # Test for 2x24h, over 5 hours, less than 10 hours + room rate
        dt_out = self.dt_in + datetime.timedelta(days=2, hours=6)
        self.assertEqual(872.5, compute_rates(self.rates, self.dt_in, dt_out)[0])

        # Test for 2x24h, over 10 hours
        dt_out = self.dt_in + datetime.timedelta(days=2, hours=11)
        self.assertEqual(919, compute_rates(self.rates, self.dt_in, dt_out)[0])
Example #3
0
    def test_multidays(self):
        # Test for 3x24h, less than 5 hours
        dt_out = self.dt_in + datetime.timedelta(days=3, hours=1)
        self.assertEqual(949.5, compute_rates(self.rates, self.dt_in, dt_out)[0])

        # Test for 3x24h, over 5 hours, less than 10 hours
        dt_out = self.dt_in + datetime.timedelta(days=3, hours=6)
        self.assertEqual(989.5, compute_rates(self.rates, self.dt_in, dt_out)[0])

        # Test for 3x24h, over 10 hours
        dt_out = self.dt_in + datetime.timedelta(days=3, hours=11)
        self.assertEqual(1036, compute_rates(self.rates, self.dt_in, dt_out)[0])
Example #4
0
    def test_nextday(self):
        # Test for next day less than 24h
        dt_out = self.dt_in + datetime.timedelta(hours=4)
        self.assertEqual(199.5, compute_rates(self.rates, self.dt_in, dt_out)[0])

        # Test for next day less, over than 5 hours, less than 10 hours
        dt_out = self.dt_in + datetime.timedelta(hours=6)
        self.assertEqual(239.5, compute_rates(self.rates, self.dt_in, dt_out)[0])

        # Test for next day over 10 hours
        dt_out = self.dt_in + datetime.timedelta(hours=11)
        self.assertEqual(286, compute_rates(self.rates, self.dt_in, dt_out)[0])

        # Test for next day than 24h
        dt_out = self.dt_in + datetime.timedelta(hours=25)
        self.assertEqual(316.5, compute_rates(self.rates, self.dt_in, dt_out)[0])
Example #5
0
    def test_nextday(self):
        # Test for next day less than 24h
        dt_out = self.dt_in + datetime.timedelta(hours=23)
        self.assertEqual(286, compute_rates(self.rates, self.dt_in, dt_out)[0])

        # Test for next day more than 24h, less than 5 hours
        dt_out = self.dt_in + datetime.timedelta(hours=25)
        self.assertEqual(316.5, compute_rates(self.rates, self.dt_in, dt_out)[0])

        # Test for next day more than 24h, over 5 hours, less than 10 hours
        dt_out = self.dt_in + datetime.timedelta(hours=30)
        self.assertEqual(356.5, compute_rates(self.rates, self.dt_in, dt_out)[0])

        # Test for next day more than 24h, over 10 hours
        dt_out = self.dt_in + datetime.timedelta(hours=35)
        self.assertEqual(403, compute_rates(self.rates, self.dt_in, dt_out)[0])
Example #6
0
def compute():
    '''Allows a user to compute his/her trip's rate'''
    # Get rates
    rates = get_rates()

    # GET Method
    if request.method == "GET":
        return render_template("compute.html", rates=rates)

    # POST Method
    else:
        country = request.form.get("country")
        city = request.form.get("city")
        dt_in = datetime.strptime(
            request.form.get("date_in") + " " + request.form.get("time_in"),
            "%Y-%m-%d %H:%M")

        dt_out = datetime.strptime(
            request.form.get("date_out") + " " + request.form.get("time_out"),
            "%Y-%m-%d %H:%M")

        res = compute_rates(rates[country][city], dt_in, dt_out)

        return render_template("computed.html",
                               res=res,
                               location=country + ", " + city,
                               dt=(dt_in, dt_out),
                               ccy=rates[country]["currency"])