Exemple #1
0
def category_links_sorted(project_name):
    wp10db = get_db('wp10db')
    project_name_bytes = project_name.encode('utf-8')
    project = logic_project.get_project_by_name(wp10db, project_name_bytes)
    if project is None:
        return flask.abort(404)
    data = tables.generate_project_table_data(wp10db, project_name_bytes)
    data = tables.get_project_category_links(data, sort=True)

    return flask.jsonify(data)
Exemple #2
0
def table(project_name):
    wp10db = get_db('wp10db')
    project_name_bytes = project_name.encode('utf-8')
    project = logic_project.get_project_by_name(wp10db, project_name_bytes)
    if project is None:
        return flask.abort(404)

    data = tables.generate_project_table_data(wp10db, project_name_bytes)
    data = tables.convert_table_data_for_web(data)

    return flask.jsonify({'table_data': data})
Exemple #3
0
    def test_full_cache(self, patched_table_data, patched_redis):
        expected_table = {'data': {}}
        expected_pkl = pickle.dumps(expected_table)

        redis_conn = MagicMock()
        redis_conn.get = MagicMock()
        redis_conn.get.return_value = expected_pkl
        patched_redis.return_value = redis_conn

        actual = tables.generate_project_table_data(self.wp10db, b'Water')

        patched_table_data.assert_not_called()
        redis_conn.get.assert_called_once()
        self.assertEqual(expected_table, actual)
Exemple #4
0
    def test_empty_cache(self, patched_table_data, patched_redis):
        expected_table = {'data': {}}
        expected_pkl = pickle.dumps(expected_table)

        redis_conn = MagicMock()
        redis_conn.get = MagicMock()
        redis_conn.get.return_value = None
        patched_redis.return_value = redis_conn
        patched_table_data.return_value = expected_table

        actual = tables.generate_project_table_data(self.wp10db, b'Water')

        patched_table_data.assert_called_once()
        redis_conn.setex.assert_called_once_with(b'Water',
                                                 timedelta(days=1),
                                                 value=expected_pkl)
        self.assertEqual(expected_table, actual)
Exemple #5
0
 def test_generate_project_table_data(self):
     actual = tables.generate_project_table_data(self.wp10db,
                                                 b'Catholicism')
     self.assertEqual('Catholicism pages by quality', actual['title'])