def test_get_all_services_for_user(service_factory, sample_user): service_factory.get("service 1", sample_user, email_from="service.1") service_factory.get("service 2", sample_user, email_from="service.2") service_factory.get("service 3", sample_user, email_from="service.3") assert len(dao_fetch_all_services_by_user(sample_user.id)) == 3 assert dao_fetch_all_services_by_user(sample_user.id)[0].name == "service 1" assert dao_fetch_all_services_by_user(sample_user.id)[1].name == "service 2" assert dao_fetch_all_services_by_user(sample_user.id)[2].name == "service 3"
def test_get_all_services_for_user(notify_db_session): user = create_user() create_service(service_name='service 1', user=user, email_from='service.1') create_service(service_name='service 2', user=user, email_from='service.2') create_service(service_name='service 3', user=user, email_from='service.3') assert len(dao_fetch_all_services_by_user(user.id)) == 3 assert dao_fetch_all_services_by_user(user.id)[0].name == 'service 1' assert dao_fetch_all_services_by_user(user.id)[1].name == 'service 2' assert dao_fetch_all_services_by_user(user.id)[2].name == 'service 3'
def test_get_all_services_for_user(notify_db_session): user = create_user() create_service(service_name="service 1", user=user, email_from="service.1") create_service(service_name="service 2", user=user, email_from="service.2") create_service(service_name="service 3", user=user, email_from="service.3") assert len(dao_fetch_all_services_by_user(user.id)) == 3 assert dao_fetch_all_services_by_user(user.id)[0].name == "service 1" assert dao_fetch_all_services_by_user(user.id)[1].name == "service 2" assert dao_fetch_all_services_by_user(user.id)[2].name == "service 3"
def get_services(): only_active = request.args.get('only_active') == 'True' detailed = request.args.get('detailed') == 'True' user_id = request.args.get('user_id', None) include_from_test_key = request.args.get('include_from_test_key', 'True') != 'False' # If start and end date are not set, we are expecting today's stats. today = str(datetime.utcnow().date()) start_date = datetime.strptime(request.args.get('start_date', today), '%Y-%m-%d').date() end_date = datetime.strptime(request.args.get('end_date', today), '%Y-%m-%d').date() if user_id: services = dao_fetch_all_services_by_user(user_id, only_active) elif detailed: result = jsonify(data=get_detailed_services( start_date=start_date, end_date=end_date, only_active=only_active, include_from_test_key=include_from_test_key)) return result else: services = dao_fetch_all_services(only_active) data = service_schema.dump(services, many=True).data return jsonify(data=data)
def purge_functional_test_data(user_email_prefix): """ Remove non-seeded functional test data users, services, etc. Give an email prefix. Probably "notify-tests-preview". """ users = User.query.filter( User.email_address.like("{}%".format(user_email_prefix))).all() for usr in users: # Make sure the full email includes a uuid in it # Just in case someone decides to use a similar email address. try: uuid.UUID(usr.email_address.split("@")[0].split('+')[1]) except ValueError: print( "Skipping {} as the user email doesn't contain a UUID.".format( usr.email_address)) else: services = dao_fetch_all_services_by_user(usr.id) if services: for service in services: delete_service_and_all_associated_db_objects(service) else: delete_user_verify_codes(usr) delete_model_user(usr)
def get_services(): only_active = request.args.get("only_active") == "True" detailed = request.args.get("detailed") == "True" user_id = request.args.get("user_id", None) include_from_test_key = request.args.get("include_from_test_key", "True") != "False" # If start and end date are not set, we are expecting today's stats. today = str(datetime.utcnow().date()) start_date = datetime.strptime(request.args.get("start_date", today), "%Y-%m-%d").date() end_date = datetime.strptime(request.args.get("end_date", today), "%Y-%m-%d").date() if user_id: services = dao_fetch_all_services_by_user(user_id, only_active) elif detailed: result = jsonify(data=get_detailed_services( start_date=start_date, end_date=end_date, only_active=only_active, include_from_test_key=include_from_test_key, )) return result else: services = dao_fetch_all_services(only_active) data = service_schema.dump(services, many=True).data return jsonify(data=data)
def run(self, service_name_prefix=None, user_email_prefix=None): if user_email_prefix: users = User.query.filter(User.email_address.like("{}%".format(user_email_prefix))).all() for usr in users: # Make sure the full email includes a uuid in it # Just in case someone decides to use a similar email address. try: uuid.UUID(usr.email_address.split("@")[0].split('+')[1]) except ValueError: print("Skipping {} as the user email doesn't contain a UUID.".format(usr.email_address)) else: services = dao_fetch_all_services_by_user(usr.id) if services: for service in services: delete_service_and_all_associated_db_objects(service) else: delete_user_verify_codes(usr) delete_model_user(usr)
def purge_functional_test_data(user_email_prefix): """ Remove non-seeded functional test data users, services, etc. Give an email prefix. Probably "notify-tests-preview". """ users = User.query.filter( User.email_address.like("{}%".format(user_email_prefix))).all() for usr in users: # Make sure the full email includes a uuid in it # Just in case someone decides to use a similar email address. try: uuid.UUID(usr.email_address.split("@")[0].split('+')[1]) except ValueError: print( "Skipping {} as the user email doesn't contain a UUID.".format( usr.email_address)) else: services = dao_fetch_all_services_by_user(usr.id) if services: print(f"Deleting user {usr.id} which is part of services") for service in services: delete_service_and_all_associated_db_objects(service) else: services_created_by_this_user = dao_fetch_all_services_created_by_user( usr.id) if services_created_by_this_user: # user is not part of any services but may still have been the one to create the service # sometimes things get in this state if the tests fail half way through # Remove the service they created (but are not a part of) so we can then remove the user print(f"Deleting services created by {usr.id}") for service in services_created_by_this_user: delete_service_and_all_associated_db_objects(service) print( f"Deleting user {usr.id} which is not part of any services" ) delete_user_verify_codes(usr) delete_model_user(usr)
def test_get_all_only_services_user_has_access_to(service_factory, sample_user): service_factory.get("service 1", sample_user, email_from="service.1") service_factory.get("service 2", sample_user, email_from="service.2") service_3 = service_factory.get("service 3", sample_user, email_from="service.3") new_user = User( name="Test User", email_address="*****@*****.**", password="******", mobile_number="+447700900986", ) save_model_user(new_user) dao_add_user_to_service(service_3, new_user) assert len(dao_fetch_all_services_by_user(sample_user.id)) == 3 assert dao_fetch_all_services_by_user(sample_user.id)[0].name == "service 1" assert dao_fetch_all_services_by_user(sample_user.id)[1].name == "service 2" assert dao_fetch_all_services_by_user(sample_user.id)[2].name == "service 3" assert len(dao_fetch_all_services_by_user(new_user.id)) == 1 assert dao_fetch_all_services_by_user(new_user.id)[0].name == "service 3"
def test_get_all_user_services_only_returns_services_user_has_access_to(notify_db_session): user = create_user() create_service(service_name='service 1', user=user, email_from='service.1') create_service(service_name='service 2', user=user, email_from='service.2') service_3 = create_service(service_name='service 3', user=user, email_from='service.3') new_user = User( name='Test User', email_address='*****@*****.**', password='******', mobile_number='+447700900986' ) save_model_user(new_user, validated_email_access=True) dao_add_user_to_service(service_3, new_user) assert len(dao_fetch_all_services_by_user(user.id)) == 3 assert dao_fetch_all_services_by_user(user.id)[0].name == 'service 1' assert dao_fetch_all_services_by_user(user.id)[1].name == 'service 2' assert dao_fetch_all_services_by_user(user.id)[2].name == 'service 3' assert len(dao_fetch_all_services_by_user(new_user.id)) == 1 assert dao_fetch_all_services_by_user(new_user.id)[0].name == 'service 3'
def test_get_all_user_services_only_returns_services_user_has_access_to( notify_db_session, ): user = create_user() create_service(service_name="service 1", user=user, email_from="service.1") create_service(service_name="service 2", user=user, email_from="service.2") service_3 = create_service(service_name="service 3", user=user, email_from="service.3") new_user = User( name="Test User", email_address="*****@*****.**", password="******", mobile_number="+16502532222", ) save_model_user(new_user) dao_add_user_to_service(service_3, new_user) assert len(dao_fetch_all_services_by_user(user.id)) == 3 assert dao_fetch_all_services_by_user(user.id)[0].name == "service 1" assert dao_fetch_all_services_by_user(user.id)[1].name == "service 2" assert dao_fetch_all_services_by_user(user.id)[2].name == "service 3" assert len(dao_fetch_all_services_by_user(new_user.id)) == 1 assert dao_fetch_all_services_by_user(new_user.id)[0].name == "service 3"
def test_get_all_user_services_should_return_empty_list_if_no_services_for_user(notify_db_session): user = create_user() assert len(dao_fetch_all_services_by_user(user.id)) == 0
def test_get_all_user_services_should_return_empty_list_if_no_services_for_user(sample_user): assert len(dao_fetch_all_services_by_user(sample_user.id)) == 0