Rename pk attribute to key in fetchers

This commit is contained in:
Joakim Soderlund 2016-12-17 22:23:45 +01:00
parent f2853103a2
commit 0c0cdf8c3f
2 changed files with 41 additions and 41 deletions

View file

@ -55,12 +55,12 @@ class Fetcher:
"""
raise NotImplementedError()
def fetch(self, pk):
def fetch(self, key):
"""
Fetches story information.
Args:
pk: Primary key of the story.
key: Primary key of the story.
Returns:
Story: A new `Story` object.
@ -71,12 +71,12 @@ class Fetcher:
"""
raise NotImplementedError()
def fetch_data(self, pk):
def fetch_data(self, key):
"""
Fetches story content data.
Args:
pk: Primary key of the story.
key: Primary key of the story.
Returns:
bytes: Story content data.
@ -87,12 +87,12 @@ class Fetcher:
"""
raise NotImplementedError()
def fetch_meta(self, pk):
def fetch_meta(self, key):
"""
Fetches story meta information.
Args:
pk: Primary key of the story.
key: Primary key of the story.
Returns:
dict: Story meta information.
@ -141,8 +141,8 @@ class FimfictionFetcher(Fetcher):
return response
def fetch_data(self, pk):
response = self.get(self.data_path, story=pk, html=True)
def fetch_data(self, key):
response = self.get(self.data_path, story=key, html=True)
data = response.content
if len(data) == 0:
@ -156,8 +156,8 @@ class FimfictionFetcher(Fetcher):
return data
def fetch_meta(self, pk):
response = self.get(self.meta_path, story=pk)
def fetch_meta(self, key):
response = self.get(self.meta_path, story=key)
try:
meta = response.json()
@ -249,12 +249,12 @@ class FimfarchiveFetcher(Fetcher):
gc.collect()
def lookup(self, pk):
def lookup(self, key):
"""
Finds meta for a story in the index.
Args:
pk: Primary key of the story.
key: Primary key of the story.
Returns:
dict: A reference to the story's meta.
@ -266,15 +266,15 @@ class FimfarchiveFetcher(Fetcher):
if not self.is_open:
raise StorySourceError("Fetcher is closed.")
pk = str(pk)
key = str(key)
if pk not in self.index:
if key not in self.index:
raise InvalidStoryError("Story does not exist.")
return self.index[pk]
return self.index[key]
def fetch_data(self, pk):
meta = self.lookup(pk)
def fetch_data(self, key):
meta = self.lookup(key)
if 'path' not in meta:
raise StorySourceError("Index is missing a path value.")
@ -295,6 +295,6 @@ class FimfarchiveFetcher(Fetcher):
return data
def fetch_meta(self, pk):
meta = self.lookup(pk)
def fetch_meta(self, key):
meta = self.lookup(key)
return deepcopy(meta)

View file

@ -28,10 +28,10 @@ from fimfarchive.exceptions import InvalidStoryError, StorySourceError
from fimfarchive.fetchers import FimfarchiveFetcher, FimfictionFetcher
VALID_STORY_PK = 9
INVALID_STORY_PK = 7
EMPTY_STORY_PK = 8
PROTECTED_STORY_PK = 208799
VALID_STORY_KEY = 9
INVALID_STORY_KEY = 7
EMPTY_STORY_KEY = 8
PROTECTED_STORY_KEY = 208799
FIMFARCHIVE_PATH = 'fimfarchive-20160525.zip'
@ -78,8 +78,8 @@ class TestFimfictionFetcher:
"""
Tests meta is returned if story is valid
"""
meta = self.fetcher.fetch_meta(VALID_STORY_PK)
assert meta['id'] == VALID_STORY_PK
meta = self.fetcher.fetch_meta(VALID_STORY_KEY)
assert meta['id'] == VALID_STORY_KEY
assert meta['words'] != 0
def test_fetch_meta_for_invalid_story(self):
@ -87,7 +87,7 @@ class TestFimfictionFetcher:
Tests `InvalidStoryError` is raised if story is invalid.
"""
with pytest.raises(InvalidStoryError):
self.fetcher.fetch_meta(INVALID_STORY_PK)
self.fetcher.fetch_meta(INVALID_STORY_KEY)
def test_fetch_meta_for_empty_story(self):
"""
@ -97,8 +97,8 @@ class TestFimfictionFetcher:
since the story data is useless. But because the meta of such stories
may still be of interest, it was decided that meta should be returned.
"""
meta = self.fetcher.fetch_meta(EMPTY_STORY_PK)
assert meta['id'] == EMPTY_STORY_PK
meta = self.fetcher.fetch_meta(EMPTY_STORY_KEY)
assert meta['id'] == EMPTY_STORY_KEY
assert meta['words'] == 0
def test_fetch_meta_for_protected_story(self):
@ -109,15 +109,15 @@ class TestFimfictionFetcher:
since the story data is inaccessible. However, there is no way to
determine that a story is password-protected from its meta data.
"""
meta = self.fetcher.fetch_meta(PROTECTED_STORY_PK)
assert meta['id'] == PROTECTED_STORY_PK
meta = self.fetcher.fetch_meta(PROTECTED_STORY_KEY)
assert meta['id'] == PROTECTED_STORY_KEY
assert meta['words'] != 0
def test_fetch_data_for_valid_story(self):
"""
Tests data is returned if story is valid.
"""
data = self.fetcher.fetch_data(VALID_STORY_PK)
data = self.fetcher.fetch_data(VALID_STORY_KEY)
assert len(data) != 0
def test_fetch_data_for_invalid_story(self):
@ -125,21 +125,21 @@ class TestFimfictionFetcher:
Tests `InvalidStoryError` is raised if story is invalid.
"""
with pytest.raises(InvalidStoryError):
self.fetcher.fetch_data(INVALID_STORY_PK)
self.fetcher.fetch_data(INVALID_STORY_KEY)
def test_fetch_data_for_empty_story(self):
"""
Tests `InvalidStoryError` is raised if story is empty.
"""
with pytest.raises(InvalidStoryError):
self.fetcher.fetch_data(EMPTY_STORY_PK)
self.fetcher.fetch_data(EMPTY_STORY_KEY)
def test_fetch_data_for_protected_story(self):
"""
Tests `InvalidStoryError` is raised if story is protected.
"""
with pytest.raises(InvalidStoryError):
self.fetcher.fetch_data(PROTECTED_STORY_PK)
self.fetcher.fetch_data(PROTECTED_STORY_KEY)
class TestFimfarchiveFetcher:
@ -162,17 +162,17 @@ class TestFimfarchiveFetcher:
Tests fetcher can be used in with statements.
"""
with FimfarchiveFetcher(FIMFARCHIVE_PATH) as fetcher:
fetcher.lookup(VALID_STORY_PK)
fetcher.lookup(VALID_STORY_KEY)
with pytest.raises(StorySourceError):
fetcher.lookup(VALID_STORY_PK)
fetcher.lookup(VALID_STORY_KEY)
def test_fetch_meta_for_valid_story(self):
"""
Tests meta is returned if story is valid
"""
meta = self.fetcher.fetch_meta(VALID_STORY_PK)
assert meta['id'] == VALID_STORY_PK
meta = self.fetcher.fetch_meta(VALID_STORY_KEY)
assert meta['id'] == VALID_STORY_KEY
assert meta['words'] != 0
def test_fetch_meta_for_invalid_story(self):
@ -180,13 +180,13 @@ class TestFimfarchiveFetcher:
Tests `InvalidStoryError` is raised if story is invalid.
"""
with pytest.raises(InvalidStoryError):
self.fetcher.fetch_meta(INVALID_STORY_PK)
self.fetcher.fetch_meta(INVALID_STORY_KEY)
def test_fetch_data_for_valid_story(self):
"""
Tests data is returned if story is valid.
"""
data = self.fetcher.fetch_data(VALID_STORY_PK)
data = self.fetcher.fetch_data(VALID_STORY_KEY)
assert len(data) != 0
def test_fetch_data_for_invalid_story(self):
@ -194,4 +194,4 @@ class TestFimfarchiveFetcher:
Tests `InvalidStoryError` is raised if story is invalid.
"""
with pytest.raises(InvalidStoryError):
self.fetcher.fetch_data(INVALID_STORY_PK)
self.fetcher.fetch_data(INVALID_STORY_KEY)