From 0ab36a4ad15c7798c88a060892918484842c017c Mon Sep 17 00:00:00 2001 From: Alexis Durand Date: Fri, 1 Jan 2016 19:43:46 +0000 Subject: [PATCH] added tests for unpacking --- mii_unpacker/logic.py | 2 -- tests/test_funtionnality.py | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/mii_unpacker/logic.py b/mii_unpacker/logic.py index c080600..02283e1 100644 --- a/mii_unpacker/logic.py +++ b/mii_unpacker/logic.py @@ -81,8 +81,6 @@ def unrar(self, archive_file, file_name): try: output = unrar(archive_file, self.destination_dir) - # TODO : Do something with execution_result.output. - # TODO : Log in a table logger.debug("Extraction OK!") Unpacked.objects.create(filename=file_name) self.extracted += 1 diff --git a/tests/test_funtionnality.py b/tests/test_funtionnality.py index 7702ddb..8a98923 100644 --- a/tests/test_funtionnality.py +++ b/tests/test_funtionnality.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- import logging +from subprocess import CalledProcessError + import mock import os @@ -8,9 +10,12 @@ from django.test import override_settings from django.utils import timezone +from mii_common import tools from mii_indexer.models import MovieRelation from mii_indexer.models import MovieTagging, Person from mii_sorter.models import Movie, Episode, Serie, Season, get_serie_episode, WhatsNew +from mii_unpacker.factories import UnpackedFactory +from mii_unpacker.logic import RecursiveUnrarer from utils.base import TestMiilibrary logger = logging.getLogger(__name__) @@ -154,3 +159,33 @@ def test_rpc_index(self, index): assert response.status_code == 200 assert index.delay.called + +class TestSpecificUnpacker(TestMiilibrary): + def setUp(self): + self.setUpPyfakefs() + self.SOURCE_FOLDER = '/raw/' + self.DESTINATION_FOLDER = '/processed/' + tools.make_dir(self.DESTINATION_FOLDER) + tools.make_dir(self.SOURCE_FOLDER) + self.fs.CreateFile(self.SOURCE_FOLDER + 'Thor.2.rar', contents=self._generate_data(1)) + self.recursive_unrarer = RecursiveUnrarer() + + @mock.patch('mii_unpacker.logic.unrar') + def test_already_unrared(self, unrar): + UnpackedFactory.create(filename='Thor.2.rar') + self.recursive_unrarer.unrar_and_link() + assert not unrar.called + assert self.recursive_unrarer.extracted == 0 + + @mock.patch('mii_unpacker.logic.unrar') + def test_unrar(self, unrar): + self.recursive_unrarer.unrar_and_link() + assert unrar.called + assert self.recursive_unrarer.extracted == 1 + + @mock.patch('mii_unpacker.logic.unrar') + def test_unrar_raising_error(self, unrar): + unrar.side_effect = CalledProcessError('', '', '') + self.recursive_unrarer.unrar_and_link() + assert self.recursive_unrarer.extracted == 0 +