85 lines
2.9 KiB
Python
85 lines
2.9 KiB
Python
|
import unittest
|
||
|
import re
|
||
|
from datetime import datetime
|
||
|
from datetime import timedelta
|
||
|
from pony.orm import db_session
|
||
|
from ITPlanning import db
|
||
|
|
||
|
DATE_REGEX = r"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$"
|
||
|
|
||
|
|
||
|
class DbTestCase(unittest.TestCase):
|
||
|
def setUp(self):
|
||
|
db.init_database("sqlite:")
|
||
|
|
||
|
def tearDown(self):
|
||
|
db.release_database()
|
||
|
|
||
|
def create_Customer(self):
|
||
|
return db.Customer(
|
||
|
first_name="john",
|
||
|
last_name="DOE",
|
||
|
email="john@doe.fr",
|
||
|
localisation="batiment 1",
|
||
|
mobile_number="0602020020",
|
||
|
phone_number="0321323432",
|
||
|
)
|
||
|
|
||
|
def create_service_category(self):
|
||
|
return db.Service_category(
|
||
|
name="install",
|
||
|
duration=45,
|
||
|
free_order=False,
|
||
|
description="test Service_category",
|
||
|
)
|
||
|
|
||
|
def create_service(self):
|
||
|
service_category = self.create_service_category()
|
||
|
return db.Service(
|
||
|
name="install", max_appointement=1, service_category=service_category
|
||
|
)
|
||
|
|
||
|
def create_planning(self):
|
||
|
return db.Planning(
|
||
|
name="refresh1",
|
||
|
working_plan='{"monday":{"start":"09:00","end":"18:00","breaks":[{"start":"11:k20","end":"11:30"},{"start":"14:30","end":"15:00"}]},"tuesday":{"start":"09:00","end":"18:00","breaks":[{"start":"11:20","end":"11:30"},{"start":"14:30","end":"15:00"}]},"wednesday":{"start":"09:00","end":"18:00","breaks":[{"start":"11:20","end":"11:30"},{"start":"14:30","end":"15:00"}]},"thursday":{"start":"09:00","end":"18:00","breaks":[{"start":"11:20","end":"11:30"},{"start":"14:30","end":"15:00"}]},"friday":{"start":"09:00","end":"18:00","breaks":[{"start":"11:20","end":"11:30"},{"start":"14:30","end":"15:00"}]}',
|
||
|
)
|
||
|
|
||
|
def create_ticket(self):
|
||
|
pass
|
||
|
|
||
|
def create_Planner(self):
|
||
|
pass
|
||
|
|
||
|
@db_session
|
||
|
def test_appointement(self):
|
||
|
current_date = datetime.now()
|
||
|
customer = self.create_Customer()
|
||
|
service = self.create_service()
|
||
|
planning = self.create_planning()
|
||
|
planning.services.add(service)
|
||
|
end_datetime = current_date + timedelta(
|
||
|
minutes=service.service_category.duration
|
||
|
)
|
||
|
|
||
|
appointment = db.Appointment(
|
||
|
book_datetime=current_date,
|
||
|
start_datetime=current_date,
|
||
|
end_datetime=end_datetime,
|
||
|
is_unavaillable=False,
|
||
|
service=service,
|
||
|
planning=planning,
|
||
|
customer=customer,
|
||
|
)
|
||
|
self.assertIsInstance(appointment, db.Appointment)
|
||
|
self.assertIsInstance(appointment.book_datetime, datetime)
|
||
|
self.assertIsInstance(appointment.start_datetime, datetime)
|
||
|
self.assertIsInstance(appointment.end_datetime, datetime)
|
||
|
self.assertIsInstance(appointment.service, db.Service)
|
||
|
self.assertIsInstance(appointment.planning, db.Planning)
|
||
|
self.assertIsInstance(appointment.customer, db.Customer)
|
||
|
|
||
|
|
||
|
if __name__ == "main":
|
||
|
unittest.main()
|