Source code

Revision control

Copy as Markdown

Other Tools

# -*- coding: utf-8 -*-
import pytest
import os
import json
import sys
from hypothesis.strategies import text
if sys.version_info[0] == 2:
from codecs import open
# We need to grab one text example from hypothesis to prime its cache.
text().example()
# This pair of generator expressions are pretty lame, but building lists is a
# bad idea as I plan to have a substantial number of tests here.
story_directories = (
os.path.join('test/test_fixtures', d)
for d in os.listdir('test/test_fixtures')
)
story_files = (
os.path.join(storydir, name)
for storydir in story_directories
for name in os.listdir(storydir)
if 'raw-data' not in storydir
)
raw_story_files = (
os.path.join('test/test_fixtures/raw-data', name)
for name in os.listdir('test/test_fixtures/raw-data')
)
@pytest.fixture(scope='class', params=story_files)
def story(request):
"""
Provides a detailed HPACK story to test with.
"""
with open(request.param, 'r', encoding='utf-8') as f:
return json.load(f)
@pytest.fixture(scope='class', params=raw_story_files)
def raw_story(request):
"""
Provides a detailed HPACK story to test the encoder with.
"""
with open(request.param, 'r', encoding='utf-8') as f:
return json.load(f)