Exemple #1
0
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)
Exemple #2
0
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)
Exemple #5
0
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': '******',
    }])
Exemple #6
0
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)
Exemple #7
0
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)
Exemple #8
0
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)
Exemple #9
0
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)
Exemple #10
0
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
Exemple #11
0
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
Exemple #13
0
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)