def test_dao_fetch_todays_stats_for_all_services_includes_all_services(notify_db, notify_db_session, service_factory): # two services, each with an email and sms notification service1 = service_factory.get("service 1", email_from="service.1") service2 = service_factory.get("service 2", email_from="service.2") create_notification(notify_db, notify_db_session, service=service1) create_notification(notify_db, notify_db_session, service=service2) create_notification( notify_db, notify_db_session, service=service1, template=create_email_template(notify_db, notify_db_session, service=service1), ) create_notification( notify_db, notify_db_session, service=service2, template=create_email_template(notify_db, notify_db_session, service=service2), ) stats = dao_fetch_todays_stats_for_all_services().all() assert len(stats) == 4 # services are ordered by service id; not explicit on email/sms or status assert stats == sorted(stats, key=lambda x: x.service_id)
def test_dao_fetch_todays_stats_for_all_services_groups_correctly(notify_db, notify_db_session, service_factory): service1 = service_factory.get("service 1", email_from="service.1") service2 = service_factory.get("service 2", email_from="service.2") # service1: 2 sms with status "created" and one "failed", and one email create_notification(notify_db, notify_db_session, service=service1) create_notification(notify_db, notify_db_session, service=service1) create_notification(notify_db, notify_db_session, service=service1, status="failed") create_notification( notify_db, notify_db_session, service=service1, template=create_email_template(notify_db, notify_db_session, service=service1), ) # service2: 1 sms "created" create_notification(notify_db, notify_db_session, service=service2) stats = dao_fetch_todays_stats_for_all_services().all() assert len(stats) == 4 assert ("sms", "created", service1.id, 2) in stats assert ("sms", "failed", service1.id, 1) in stats assert ("email", "created", service1.id, 1) in stats assert ("sms", "created", service2.id, 1) in stats