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)
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})
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)
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)
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'])