def test_saved_not_firstload(self):
        # noinspection PyUnusedLocal
        @route.Route.register
        def results(_, search_query):
            pass

        params = dict(_route=results.route.path)
        session_id = hash_params(params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            dbstore = db.setdefault(session_id, [])
            dbstore.append("Rock")
            dbstore.append("Pop")
            db.flush()

        with testing.mock_keyboard("Rock"):
            listitems = search.SavedSearches.test(execute_delayed=True,
                                                  **params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            self.assertIn(session_id, db)
            self.assertIn("Rock", db[session_id])
            self.assertIn("Pop", db[session_id])

        self.assertEqual(len(listitems), 3)
        self.assertIn("Search", listitems[0].label)
        self.assertEqual(listitems[1].label, "Rock")
        self.assertEqual(listitems[2].label, "Pop")
    def test_search_populated(self):
        @route.Route.register
        def results(_, search_query):
            self.assertEqual(search_query, "Rock")
            yield Listitem.from_dict(results, "listitem one")
            yield Listitem.from_dict(results, "listitem two")

        params = dict(_route=results.route.path)
        session_id = hash_params(params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            dbstore = db.setdefault(session_id, [])
            dbstore.append("Pop")
            db.flush()

        with testing.mock_keyboard("Rock"):
            listitems = search.SavedSearches.test(search=True,
                                                  execute_delayed=True,
                                                  **params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            self.assertIn(session_id, db)
            self.assertIn("Rock", db[session_id])
            self.assertIn("Pop", db[session_id])

        self.assertEqual(len(listitems), 2)
        self.assertEqual(listitems[0].label, "listitem one")
        self.assertEqual(listitems[1].label, "listitem two")
    def test_saved_not_firstload(self):
        # noinspection PyUnusedLocal
        @route.Route.register
        def results(_, search_query):
            pass

        params = dict(_route=results.route.path)
        session_id = hash_params(params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            dbstore = db.setdefault(session_id, [])
            dbstore.append("Rock")
            dbstore.append("Pop")
            db.flush()

        with testing.mock_keyboard("Rock"):
            listitems = search.SavedSearches.test(execute_delayed=True, **params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            self.assertIn(session_id, db)
            self.assertIn("Rock", db[session_id])
            self.assertIn("Pop", db[session_id])

        self.assertEqual(len(listitems), 3)
        self.assertIn("Search", listitems[0].label)
        self.assertEqual(listitems[1].label, "Rock")
        self.assertEqual(listitems[2].label, "Pop")
    def test_search_populated(self):
        @route.Route.register
        def results(_, search_query):
            self.assertEqual(search_query, "Rock")
            yield Listitem.from_dict(results, "listitem one")
            yield Listitem.from_dict(results, "listitem two")

        params = dict(_route=results.route.path)
        session_id = hash_params(params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            dbstore = db.setdefault(session_id, [])
            dbstore.append("Pop")
            db.flush()

        with testing.mock_keyboard("Rock"):
            listitems = search.SavedSearches.test(search=True, execute_delayed=True, **params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            self.assertIn(session_id, db)
            self.assertIn("Rock", db[session_id])
            self.assertIn("Pop", db[session_id])

        self.assertEqual(len(listitems), 2)
        self.assertEqual(listitems[0].label, "listitem one")
        self.assertEqual(listitems[1].label, "listitem two")
    def test_saved_sessions(self):
        # noinspection PyUnusedLocal
        @route.Route.register
        def session_one(_, search_query):
            self.assertEqual(search_query, "Rock")
            yield Listitem.from_dict(session_one, "listitem one")
            yield Listitem.from_dict(session_one, "listitem two")

        # noinspection PyUnusedLocal
        @route.Route.register
        def session_two(_, search_query):
            self.assertEqual(search_query, "Pop")
            yield Listitem.from_dict(session_two, "listitem one")
            yield Listitem.from_dict(session_two, "listitem two")

        session_one_params = dict(_route=session_one.route.path)
        session_one_id = hash_params(session_one_params)

        session_two_params = dict(_route=session_two.route.path)
        session_two_id = hash_params(session_two_params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            dbstore = db.setdefault(session_one_id, [])
            dbstore.append("Jazz")
            dbstore = db.setdefault(session_two_id, [])
            dbstore.append("Chill")
            db.flush()

        with testing.mock_keyboard("Rock"):
            search.SavedSearches.test(search=True,
                                      execute_delayed=True,
                                      **session_one_params)

        with testing.mock_keyboard("Pop"):
            search.SavedSearches.test(search=True,
                                      execute_delayed=True,
                                      **session_two_params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            self.assertIn(session_one_id, db)
            self.assertIn("Rock", db[session_one_id])
            self.assertNotIn("Pop", db[session_one_id])

            self.assertIn(session_two_id, db)
            self.assertIn("Pop", db[session_two_id])
            self.assertNotIn("Rock", db[session_two_id])
    def test_saved_sessions(self):
        # noinspection PyUnusedLocal
        @route.Route.register
        def session_one(_, search_query):
            self.assertEqual(search_query, "Rock")
            yield Listitem.from_dict(session_one, "listitem one")
            yield Listitem.from_dict(session_one, "listitem two")

        # noinspection PyUnusedLocal
        @route.Route.register
        def session_two(_, search_query):
            self.assertEqual(search_query, "Pop")
            yield Listitem.from_dict(session_two, "listitem one")
            yield Listitem.from_dict(session_two, "listitem two")

        session_one_params = dict(_route=session_one.route.path)
        session_one_id = hash_params(session_one_params)

        session_two_params = dict(_route=session_two.route.path)
        session_two_id = hash_params(session_two_params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            dbstore = db.setdefault(session_one_id, [])
            dbstore.append("Jazz")
            dbstore = db.setdefault(session_two_id, [])
            dbstore.append("Chill")
            db.flush()

        with testing.mock_keyboard("Rock"):
            search.SavedSearches.test(search=True, execute_delayed=True, **session_one_params)

        with testing.mock_keyboard("Pop"):
            search.SavedSearches.test(search=True, execute_delayed=True, **session_two_params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            self.assertIn(session_one_id, db)
            self.assertIn("Rock", db[session_one_id])
            self.assertNotIn("Pop", db[session_one_id])

            self.assertIn(session_two_id, db)
            self.assertIn("Pop", db[session_two_id])
            self.assertNotIn("Rock", db[session_two_id])
    def test_first_load_canceled(self):
        # noinspection PyUnusedLocal
        @route.Route.register
        def results(_, search_query):
            pass

        with testing.mock_keyboard(""):
            listitems = search.SavedSearches.test(first_load=True,
                                                  route=results.route.path,
                                                  execute_delayed=True)

        with storage.PersistentList(search.SEARCH_DB) as db:
            self.assertFalse(bool(db))

        self.assertFalse(listitems)
    def test_first_load_invalid(self):
        @route.Route.register
        def results(_, search_query):
            self.assertEqual(search_query, "Rock")
            return False

        with testing.mock_keyboard("Rock"):
            listitems = search.SavedSearches.test(first_load=True,
                                                  route=results.route.path,
                                                  execute_delayed=True)

        with storage.PersistentList(search.SEARCH_DB) as db:
            self.assertNotIn("Rock", db)

        self.assertFalse(listitems)
    def test_first_load_canceled(self):
        # noinspection PyUnusedLocal
        @route.Route.register
        def results(_, search_query):
            pass

        params = dict(_route=results.route.path)
        session_id = hash_params(params)

        with testing.mock_keyboard(""):
            listitems = search.SavedSearches.test(first_load=True, execute_delayed=True, **params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            self.assertIn(session_id, db)
            self.assertFalse(bool(db[session_id]))

        self.assertFalse(listitems)
    def test_first_load_invalid(self):
        @route.Route.register
        def results(_, search_query):
            self.assertEqual(search_query, "Rock")
            return False

        params = dict(_route=results.route.path)
        session_id = hash_params(params)

        with testing.mock_keyboard("Rock"):
            listitems = search.SavedSearches.test(first_load=True, execute_delayed=True, **params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            self.assertIn(session_id, db)
            self.assertNotIn("Rock", db[session_id])

        self.assertFalse(listitems)
    def test_search_empty(self):
        @route.Route.register
        def results(_, search_query):
            self.assertEqual(search_query, "Rock")
            yield Listitem.from_dict(results, "listitem one")
            yield Listitem.from_dict(results, "listitem two")

        with testing.mock_keyboard("Rock"):
            listitems = search.SavedSearches.test(search=True,
                                                  route=results.route.path,
                                                  execute_delayed=True)

        with storage.PersistentList(search.SEARCH_DB) as db:
            self.assertIn("Rock", db)

        self.assertEqual(len(listitems), 2)
        self.assertEqual(listitems[0].label, "listitem one")
        self.assertEqual(listitems[1].label, "listitem two")
    def test_first_load_canceled(self):
        # noinspection PyUnusedLocal
        @route.Route.register
        def results(_, search_query):
            pass

        params = dict(_route=results.route.path)
        session_id = hash_params(params)

        with testing.mock_keyboard(""):
            listitems = search.SavedSearches.test(first_load=True,
                                                  execute_delayed=True,
                                                  **params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            self.assertIn(session_id, db)
            self.assertFalse(bool(db[session_id]))

        self.assertFalse(listitems)
    def test_first_load_invalid(self):
        @route.Route.register
        def results(_, search_query):
            self.assertEqual(search_query, "Rock")
            return False

        params = dict(_route=results.route.path)
        session_id = hash_params(params)

        with testing.mock_keyboard("Rock"):
            listitems = search.SavedSearches.test(first_load=True,
                                                  execute_delayed=True,
                                                  **params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            self.assertIn(session_id, db)
            self.assertNotIn("Rock", db[session_id])

        self.assertFalse(listitems)
    def test_search_populated_invalid(self):
        # noinspection PyUnusedLocal
        @route.Route.register
        def results(_, search_query):
            pass

        with storage.PersistentList(search.SEARCH_DB) as db:
            db.append("Pop")
            db.flush()

        with testing.mock_keyboard(""):
            listitems = search.SavedSearches.test(search=True,
                                                  route=results.route.path,
                                                  execute_delayed=True)

        with storage.PersistentList(search.SEARCH_DB) as db:
            self.assertIn("Pop", db)

        self.assertEqual(len(listitems), 2)
        self.assertIn("Search", listitems[0].label)
        self.assertEqual(listitems[1].label, "Pop")
Example #15
0
    def test_first_load(self):
        @route.Route.register
        def results(_, search_query):
            self.assertEqual(search_query, "Rock")
            yield Listitem.from_dict(results, "listitem one")
            yield Listitem.from_dict(results, "listitem two")

        params = dict(_route=results.route.path)
        session_id = hash_params(params)

        with testing.mock_keyboard("Rock"):
            listitems = search.saved_searches.test(first_load=True,
                                                   execute_delayed=True,
                                                   **params)

        with storage.PersistentDict(search.SEARCH_DB) as db:
            self.assertIn(session_id, db)
            self.assertIn("Rock", db[session_id])

        self.assertEqual(len(listitems), 2)
        self.assertEqual(listitems[0].label, "listitem one")
        self.assertEqual(listitems[1].label, "listitem two")
    def test_keyboard(self):
        with testing.mock_keyboard("Testing input"):
            ret = utils.keyboard("Test")

        self.assertEqual(ret, "Testing input")