def create_test_topics(db_conn): users = [{ 'id': user_uuid, 'name': 'test', 'email': '*****@*****.**', 'password': '******', }, { 'id': user_b_uuid, 'name': 'other', 'email': '*****@*****.**', 'password': '******', }] raw_insert_users(db_conn, users) units = [{ 'user_id': user_uuid, 'entity_id': test_unit_uuid, 'name': 'test unit add', 'body': 'adding numbers is fun' }, { 'user_id': user_uuid, 'entity_id': test_unit_b_uuid, 'name': 'test unit subtract', 'body': 'subtracting numbers is fun' }] raw_insert_units(db_conn, units) topics = [{ 'id': test_topic_id, 'user_id': user_uuid, 'entity_id': test_unit_uuid, 'entity_kind': 'unit', 'name': 'Lets talk about adding numbers', }] raw_insert_topics(db_conn, topics)
def create_user_subjects_test_data(db_conn): users = [{ 'id': user_a_uuid, 'name': 'test', 'email': '*****@*****.**', 'password': '******', }, { 'id': user_b_uuid, 'name': 'other', 'email': '*****@*****.**', 'password': '******', }] raw_insert_users(db_conn, users) subjects = [{ 'entity_id': test_subject_uuid, 'name': 'Calculus', 'user_id': user_b_uuid, 'body': 'Calculus is fun sometimes.', 'members': [], }] raw_insert_subjects(db_conn, subjects) user_subjects = [{ 'user_id': user_a_uuid, 'subject_id': test_subject_uuid, }] raw_insert_user_subjects(db_conn, user_subjects)
def test_user_update_self_only(db_conn, session): """ Ensure a user can only update herself. """ raw_insert_users( db_conn, [{ 'name': 'other', 'email': '*****@*****.**', # NOTE do not use rounds this low in production 'password': bcrypt.encrypt('1234abcd', rounds=4), }]) request = { 'params': { 'email': '*****@*****.**' }, 'cookies': { 'session_id': session, }, 'db_conn': db_conn } code, response = routes.user.update_user_route(request, user_id) assert code != 200 assert 'errors' in response
def create_test_user(db_conn): users = [{ 'id': user_a_uuid, 'name': 'test', 'email': '*****@*****.**', 'password': '******', }] raw_insert_users(db_conn, users)
def create_user_in_db(db_conn): from raw_insert import raw_insert_users raw_insert_users(db_conn, [{ 'id': convert_slug_to_uuid(user_id), 'name': 'test', 'email': '*****@*****.**', 'password': '******', }])
def create_response_test_data(db_conn): users = [{ 'id': user_a_uuid, 'name': 'test', 'email': '*****@*****.**', 'password': '******', }] raw_insert_users(db_conn, users) units = [{ 'entity_id': test_unit_uuid, 'name': 'Calculus', 'user_id': user_a_uuid, 'body': 'Calculus is fun sometimes.', }] raw_insert_units(db_conn, units) cards = [{ 'user_id': user_a_uuid, 'entity_id': test_card_uuid, 'unit_id': test_unit_uuid, 'kind': 'choice', 'name': 'Meaning of Life', 'data': { 'body': 'What is the meaning of life?', 'options': [{ 'id': convert_uuid_to_slug(test_card_option1_uuid), 'value': '42', 'correct': True, 'feedback': 'Yay!', }, { 'id': convert_uuid_to_slug(test_card_option2_uuid), 'value': 'love', 'correct': False, 'feedback': 'Boo!', }], 'order': 'set', 'max_options_to_show': 4, }, }] raw_insert_cards(db_conn, cards) responses = [{ 'user_id': user_a_uuid, 'card_id': test_card_uuid, 'unit_id': test_unit_uuid, 'response': test_card_option1_uuid, 'score': 1, 'learned': 0.5, }, { 'user_id': user_a_uuid, 'card_id': test_card_uuid, 'unit_id': test_unit_uuid, 'response': test_card_option2_uuid, 'score': 0, 'learned': 0.4, }] raw_insert_responses(db_conn, responses)
def create_users_in_db(db_conn): users = [{ 'id': user_a_uuid, 'name': 'another', 'email': '*****@*****.**', 'password': '******', }, { 'id': user_b_uuid, 'name': 'other', 'email': '*****@*****.**', 'password': '******', }] raw_insert_users(db_conn, users)
def create_subject_test_data(db_conn): users = [{ 'id': user_a_uuid, 'name': 'test', 'email': '*****@*****.**', 'password': '******', }, { 'id': user_b_uuid, 'name': 'other', 'email': '*****@*****.**', 'password': '******', }] raw_insert_users(db_conn, users) units = [{ 'user_id': user_a_uuid, 'entity_id': unit_a_uuid, 'name': 'test unit add', 'body': 'adding numbers is fun' }, { 'user_id': user_a_uuid, 'entity_id': unit_b_uuid, 'name': 'test unit subtract', 'body': 'subtracting numbers is fun', 'require_ids': [unit_a_uuid], }] raw_insert_units(db_conn, units) subjects = [{ 'version_id': subject_version_a_uuid, 'entity_id': test_subject_a_uuid, 'name': 'Math', 'user_id': user_b_uuid, 'body': 'Math is fun.', 'members': [{ 'kind': 'unit', 'id': convert_uuid_to_slug(unit_a_uuid), }, { 'kind': 'unit', 'id': convert_uuid_to_slug(unit_b_uuid), }], }, { 'entity_id': test_subject_b_uuid, 'name': 'Art', 'user_id': user_b_uuid, 'body': 'Art is fun.', 'members': [{ 'kind': 'subject', 'id': convert_uuid_to_slug(test_subject_a_uuid), }], }] raw_insert_subjects(db_conn, subjects)
def create_test_notices(db_conn): users = [{ 'id': user_uuid, 'name': 'test', 'email': '*****@*****.**', 'password': '******', }, { 'id': user_b_uuid, 'name': 'other', 'email': '*****@*****.**', 'password': '******', }] raw_insert_users(db_conn, users) notices = [{ 'id': notice_a_id, 'user_id': user_uuid, 'kind': 'create_topic', 'data': { 'user_name': 'Doris', 'topic_name': 'A new topic', 'entity_kind': 'unit', 'entity_name': 'Adding numbers', }, }, { 'user_id': user_uuid, 'kind': 'create_topic', 'data': { 'user_name': 'Doris', 'topic_name': 'Another new topic', 'entity_kind': 'unit', 'entity_name': 'Subtracting numbers', }, }, { 'user_id': user_b_uuid, 'kind': 'create_topic', 'data': { 'user_name': 'Francesca', 'topic_name': 'A third new topic', 'entity_kind': 'unit', 'entity_name': 'Multiplying numbers', }, }] return raw_insert_notices(db_conn, notices)
def test_list_user_subjects_route_other_403(db_conn): this_user_id = uuid.uuid4() from raw_insert import raw_insert_users raw_insert_users(db_conn, [{ 'id': this_user_id, 'name': 'test', 'email': '*****@*****.**', 'password': '******', 'settings': { 'email_frequency': 'daily', 'view_subjects': 'private', 'view_follows': 'private', }, }]) request = { 'params': {}, 'db_conn': db_conn, } code, _ = routes.user_subjects.list_user_subjects_route( request, this_user_id) assert code == 403
def create_topic_in_db(db_conn, user_id=user_id): users = [{ 'id': user_b_uuid, 'name': 'other', 'email': '*****@*****.**', 'password': '******', }] raw_insert_users(db_conn, users) raw_insert_units(db_conn, [{ 'user_id': user_id, 'entity_id': unit_uuid, 'name': 'test unit subtract', 'body': 'subtracting numbers is fun', }]) raw_insert_topics(db_conn, [{ 'id': topic_uuid, 'user_id': user_id, 'name': 'A Modest Proposal', 'entity_id': unit_uuid, 'entity_kind': 'unit' }])
def test_unfollow_403(db_conn, session): """ Expect to unfollow an entity. """ user_b_uuid = uuid.uuid4() raw_insert_users(db_conn, [{ 'id': user_b_uuid, 'name': 'other', 'email': '*****@*****.**', 'password': '******', }]) raw_insert_follows(db_conn, [{ 'id': follow_a_uuid, 'user_id': user_b_uuid, 'entity_kind': 'unit', 'entity_id': unit_a_uuid, }]) request = {'cookies': {'session_id': session}, 'db_conn': db_conn} code, _ = routes.follow.unfollow_route(request, follow_a_uuid) assert code == 403
def test_mark_not_owned(db_conn, session): """ Expect to error when not own notice when marking as read. """ user_b_uuid = uuid.uuid4() raw_insert_users(db_conn, [{ 'id': user_b_uuid, 'name': 'other', 'email': '*****@*****.**', 'password': '******', }]) notice, errors = insert_notice( db_conn, { 'user_id': user_b_uuid, 'kind': 'create_proposal', 'data': { 'user_name': '', 'proposal_name': '', 'entity_kind': '', 'entity_name': '', } }) assert not errors nid = notice['id'] request = { 'cookies': { 'session_id': session }, 'params': { 'read': True }, 'db_conn': db_conn, } code, _ = routes.notice.mark_notice_route(request, nid) assert code == 403 record = get_notice(db_conn, {'id': nid}) assert record['read'] is False
def test_get_sitemap_route(db_conn): raw_insert_users(db_conn, [{ 'id': user_uuid, 'name': 'test', 'email': '*****@*****.**', 'password': '******', }]) raw_insert_units(db_conn, [{ 'user_id': user_uuid, 'entity_id': unit_uuid, 'name': 'test unit add', 'body': 'adding numbers is fun' }]) raw_insert_topics(db_conn, [{ 'id': topic_uuid, 'user_id': user_uuid, 'entity_id': unit_uuid, 'entity_kind': 'unit', 'name': 'Lets talk about adding numbers', }]) request = {'db_conn': db_conn} code, _ = get_sitemap_route(request) assert code == 200
def create_card_test_data(db_conn): users = [{ 'id': user_a_uuid, 'name': 'test', 'email': '*****@*****.**', 'password': '******', }, { 'id': user_b_uuid, 'name': 'other', 'email': '*****@*****.**', 'password': '******', }] raw_insert_users(db_conn, users) units = [{ 'version_id': unit_version_a_uuid, 'user_id': user_a_uuid, 'entity_id': unit_a_uuid, 'name': 'test unit add', 'body': 'adding numbers is fun' }] raw_insert_units(db_conn, units) cards = [{ 'version_id': card_version_a_uuid, 'entity_id': card_a_uuid, 'unit_id': unit_a_uuid, 'user_id': user_a_uuid, 'status': 'accepted', 'kind': 'video', 'name': 'Meaning of Life Video', 'data': { 'site': 'youtube', 'video_id': convert_uuid_to_slug(uuid.uuid4()), }, }, { 'version_id': card_version_b_uuid, 'entity_id': card_b_uuid, 'unit_id': unit_a_uuid, 'user_id': user_a_uuid, 'kind': 'choice', 'name': 'Meaning of Life', 'data': { 'body': 'What is the meaning of life?', 'options': [{ 'id': convert_uuid_to_slug(test_card_option1_uuid), 'value': '42', 'correct': True, 'feedback': 'Yay!', }, { 'id': convert_uuid_to_slug(test_card_option2_uuid), 'value': 'love', 'correct': False, 'feedback': 'Boo!', }], 'order': 'set', 'max_options_to_show': 4, }, 'require_ids': [card_a_uuid] }] raw_insert_cards(db_conn, cards)
def create_test_posts(db_conn): users = [{ 'id': user_uuid, 'name': 'test', 'email': '*****@*****.**', 'password': '******', }, { 'id': user_b_uuid, 'name': 'other', 'email': '*****@*****.**', 'password': '******', }] raw_insert_users(db_conn, users) units = [{ 'version_id': test_unit_version_uuid, 'user_id': user_uuid, 'entity_id': test_unit_uuid, 'name': 'test unit add', 'body': 'adding numbers is fun', }, { 'version_id': test_unit_b_version_uuid, 'user_id': user_uuid, 'entity_id': test_unit_b_uuid, 'name': 'test unit subtract', 'body': 'subtracting numbers is fun', }] raw_insert_units(db_conn, units) topics = [{ 'id': test_topic_id, 'user_id': user_uuid, 'entity_id': test_unit_uuid, 'entity_kind': 'unit', 'name': 'Lets talk about adding numbers', }, { 'id': test_topic_b_id, 'user_id': user_uuid, 'entity_id': test_unit_b_uuid, 'entity_kind': 'unit', 'name': 'Lets talk about subtracting numbers', }] raw_insert_topics(db_conn, topics) posts = [{ 'id': proposal_uuid, 'kind': 'proposal', 'body': 'A new version', 'entity_versions': [{ 'id': convert_uuid_to_slug(test_unit_version_uuid), 'kind': 'unit', }], 'user_id': user_uuid, 'topic_id': test_topic_id, }, { 'id': post_uuid, 'kind': 'post', 'body': 'I just love adding numbers.', 'user_id': user_uuid, 'topic_id': test_topic_id, }, { 'id': vote_uuid, 'kind': 'vote', 'body': 'Yay!', 'replies_to_id': proposal_uuid, 'response': True, 'user_id': user_b_uuid, 'topic_id': test_topic_id, }] raw_insert_posts(db_conn, posts)