Fix build after static type checker changes

This commit is contained in:
Joakim Soderlund 2018-06-02 17:40:42 +02:00
parent ed7781f0bc
commit 0ee02b971a
4 changed files with 24 additions and 9 deletions

View file

@ -263,7 +263,7 @@ class RootHandler(Handler):
return rating and rating.strip().lower() return rating and rating.strip().lower()
@property @property
def cover_image(self) -> Dict[str, Any]: def cover_image(self) -> Optional[Dict[str, Any]]:
image = self.meta.get('image') image = self.meta.get('image')
if image is None: if image is None:
@ -299,7 +299,7 @@ class RootHandler(Handler):
return f'<p>{html.strip()}</p>' return f'<p>{html.strip()}</p>'
@property @property
def rating(self) -> int: def rating(self) -> Optional[int]:
likes = self.num_likes likes = self.num_likes
dislikes = self.num_dislikes dislikes = self.num_dislikes

View file

@ -203,12 +203,15 @@ class FimfarchiveFetcher(Fetcher):
def close(self) -> None: def close(self) -> None:
self.is_open = False self.is_open = False
self.index = None
self.paths = None
if self.archive is not None: if hasattr(self, 'archive'):
self.archive.close() self.archive.close()
self.archive = None
if hasattr(self, 'index'):
self.index.clear()
if hasattr(self, 'paths'):
self.paths.clear()
def fetch_meta(self, key: int) -> Dict[str, Any]: def fetch_meta(self, key: int) -> Dict[str, Any]:
key = self.validate(key) key = self.validate(key)

View file

@ -188,12 +188,15 @@ class UpdateTask(SignalSender):
Raises: Raises:
ValueError: If new story already contains archive meta. ValueError: If new story already contains archive meta.
""" """
if old is None or new is None:
return
try: try:
if 'archive' in new.meta: if 'archive' in new.meta:
raise ValueError("New story contains archive meta.") raise ValueError("New story contains archive meta.")
new.meta['archive'] = deepcopy(old.meta['archive']) new.meta['archive'] = deepcopy(old.meta['archive'])
except (AttributeError, InvalidStoryError, KeyError): except (InvalidStoryError, KeyError):
return return
def update(self, key: int) -> Optional[Story]: def update(self, key: int) -> Optional[Story]:
@ -213,6 +216,7 @@ class UpdateTask(SignalSender):
selected = self.select(old, new) selected = self.select(old, new)
if selected and UpdateStatus.REVIVED in selected.flavors: if selected and UpdateStatus.REVIVED in selected.flavors:
assert new is not None
selected = selected.merge(meta=new.meta) selected = selected.merge(meta=new.meta)
if selected: if selected:

View file

@ -31,7 +31,7 @@ from fimfarchive.fetchers import FimfarchiveFetcher
VALID_STORY_KEY = 9 VALID_STORY_KEY = 9
INVALID_STORY_KEY = 7 INVALID_STORY_KEY = 7
FIMFARCHIVE_PATH = 'fimfarchive-20171203.zip' FIMFARCHIVE_PATH = 'fimfarchive.zip'
class TestFimfarchiveFetcher: class TestFimfarchiveFetcher:
@ -39,7 +39,7 @@ class TestFimfarchiveFetcher:
FimfarchiveFetcher tests. FimfarchiveFetcher tests.
""" """
@pytest.yield_fixture(scope='module') @pytest.fixture(scope='module')
def fetcher(self): def fetcher(self):
""" """
Returns the fetcher instance to test. Returns the fetcher instance to test.
@ -84,3 +84,11 @@ class TestFimfarchiveFetcher:
""" """
with pytest.raises(InvalidStoryError): with pytest.raises(InvalidStoryError):
fetcher.fetch_data(INVALID_STORY_KEY) fetcher.fetch_data(INVALID_STORY_KEY)
@pytest.mark.parametrize('attr', ('archive', 'index', 'paths'))
def test_close_when_missing_attribute(self, attr):
"""
Tests close works even after partial initialization.
"""
with FimfarchiveFetcher(FIMFARCHIVE_PATH) as fetcher:
delattr(fetcher, attr)