53 lines
2 KiB
Python
53 lines
2 KiB
Python
from odoo.tests import TransactionCase, tagged
|
|
import datetime
|
|
import pytz
|
|
|
|
@tagged('-at_install', 'post_install')
|
|
class TestGeoRouter(TransactionCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
cls.apikey = cls.env['base.geo_router']._get_api_key()
|
|
|
|
def test_distance_time_basic(self):
|
|
bemade, montreal = self._generate_partners()
|
|
|
|
distance, time = self.env['base.geo_router'].get_driving_distance_time(bemade, montreal)
|
|
|
|
self.assertTrue(20 < distance < 40)
|
|
self.assertTrue(12 < time < 60)
|
|
|
|
def test_time_traffic(self):
|
|
bemade, montreal = self._generate_partners()
|
|
est = pytz.timezone('US/Eastern')
|
|
today_naive = datetime.date.today()
|
|
today = datetime.datetime(today_naive.year, today_naive.month, today_naive.day, 8, 30, tzinfo=est)
|
|
arrival_time_local = today + datetime.timedelta(days=(2 - today.weekday()) % 7)
|
|
arrival_time_utc = arrival_time_local.astimezone(pytz.utc)
|
|
arrival_time = arrival_time_utc.strftime('%Y-%m-%dT%H:%M:%S.%fZ')
|
|
print(arrival_time)
|
|
|
|
distance, time = self.env['base.geo_router'].get_driving_distance_time(bemade, montreal,
|
|
arrival_time=arrival_time)
|
|
|
|
self.assertTrue(25 < time < 90)
|
|
|
|
@classmethod
|
|
def _generate_partners(self):
|
|
bemade = self.env['res.partner'].create({
|
|
'name': 'Bemade Inc.',
|
|
'street': '255 North Montcalm Blvd.',
|
|
'city': 'Candiac',
|
|
'zip': 'J5R 3L6',
|
|
'state_id': self.env.ref('base.state_ca_qc').id,
|
|
'country_id': self.env.ref('base.ca').id,
|
|
})
|
|
montreal = self.env['res.partner'].create({
|
|
'name': 'City of Montreal',
|
|
'street': '220 East René-Lévesque Blvd.',
|
|
'city': 'Montreal',
|
|
'zip': 'H2X 3A7',
|
|
'state_id': self.env.ref('base.state_ca_qc').id,
|
|
'country_id': self.env.ref('base.ca').id,
|
|
})
|
|
return bemade, montreal
|