itplanning/tests/base/test_DB.py
2021-06-01 14:16:05 +02:00

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()