Beispiel #1
0
class BootStrapper(object):

    def __init__(self):
        output_type = "web"
        harvester_type = "filesystem"

        pf = PersistenceFactory(Config()).get_persistence()
        self.__a = Aquarius(output_type, harvester_type, BasicInteractorFactory(pf))

    def main(self):
        self.__a.main()

    def set_app(self, app):
        self.__a = app
Beispiel #2
0
 def setUp(self):
     self.setup_interactors()
     self.__app = Aquarius("dummy", "whatever", self.__interactor_factory)
     self.__setup_harvester_mock()
     self.__gotCallback = False
Beispiel #3
0
    def __init__(self):
        output_type = "web"
        harvester_type = "filesystem"

        pf = PersistenceFactory(Config()).get_persistence()
        self.__a = Aquarius(output_type, harvester_type, BasicInteractorFactory(pf))
Beispiel #4
0
class TestAquarius(unittest.TestCase):
    
    def setUp(self):
        self.setup_interactors()
        self.__app = Aquarius("dummy", "whatever", self.__interactor_factory)
        self.__setup_harvester_mock()
        self.__gotCallback = False

    def setup_interactors(self):
        self.__search_book_interactor = Mock(Interactor)
        self.__add_book_interactor = Mock(AddBookInteractor)
        self.__list_books_by_first_letter_interactor = Mock(ListBooksByFirstLetterInteractor)
        self.__get_book_details_interactor = Mock(GetBookDetailsInteractor)
        self.__get_book_type_interactor = Mock(GetBookTypeInteractor)
        self.__interactor_factory = InteractorFactory()
        self.__interactor_factory.get_search_book_interactor = Mock(return_value=self.__search_book_interactor)
        self.__interactor_factory.get_add_book_interactor = Mock(return_value=self.__add_book_interactor)
        self.__interactor_factory.get_list_books_by_first_letter_interactor = \
            Mock(return_value=self.__list_books_by_first_letter_interactor)
        self.__interactor_factory.get_book_details_interactor = Mock(return_value=self.__get_book_details_interactor)
        self.__interactor_factory.get_book_type_interactor = Mock(return_value=self.__get_book_type_interactor)

    def __setup_harvester_mock(self):
        self.__harvester = harvester = Harvester()
        harvester.do_harvest = Mock()
        self.__app.set_harvester(harvester)

    def test_search_books_uses_interactor_factory(self):
        self.__app.search_books("")
        self.assertTrue(self.__interactor_factory.get_search_book_interactor.called)

    def test_search_books_calls_interactor(self):
        self.__app.search_books("")
        self.assertTrue(self.__search_book_interactor.execute.called)

    def test_list_books_by_first_letter_uses_interactor_factory(self):
        self.__app.list_books_by_first_letter("b")
        self.assertTrue(self.__interactor_factory.get_list_books_by_first_letter_interactor.called)

    def test_list_books_by_first_letter_calls_interactor(self):
        self.__app.list_books_by_first_letter("b")
        self.assertTrue(self.__list_books_by_first_letter_interactor.execute.called)

    def test_get_book_details_uses_interactor_factory(self):
        self.__app.get_book_details(0)
        self.assertTrue(self.__interactor_factory.get_book_details_interactor.called)

    def test_get_book_details_calls_interactor(self):
        self.__app.get_book_details(0)
        self.assertTrue(self.__get_book_details_interactor.execute.called)

    def test_get_book_type_uses_interactor_factory(self):
        self.__app.get_book_type("EPUB")
        self.assertTrue(self.__interactor_factory.get_book_type_interactor.called)

    def test_get_book_type_calls_interactor(self):
        self.__app.get_book_type("EPUB")
        self.assertTrue(self.__get_book_type_interactor.execute.called)

    def test_add_book_uses_interactor_factory(self):
        self.__app.add_book(None)
        self.assertTrue(self.__interactor_factory.get_add_book_interactor.called)

    def test_add_book_calls_interactor(self):
        self.__app.add_book(None)
        self.assertTrue(self.__add_book_interactor.execute.called)

    def test_call_main(self):
        output = Web(self.__app, None)
        output.main = Mock()
        self.__app.set_output(output)
        self.__app.main()
        self.assertTrue(output.main.called)

    def test_calling_harvest_books_calls_harvester(self):
        self.__app.harvest_books()
        self.assertTrue(self.__harvester.do_harvest.called)

    def test_calling_harvest_books_does_not_call_harvester_when_is_harvesting_set(self):
        self.__app.is_harvesting = True
        self.__app.harvest_books()
        self.assertFalse(self.__harvester.do_harvest.called)