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