Exemplo n.º 1
0
    def test_edge_cases_1(self):
        ss = SearchState(
            scope='followed',  # this is not a valid choice for non-logger users
            sort='age-desc',
            query=' alfa',
            tags='miki, mini',
            author='12',
            page='2',
            user_logged_in=False)
        self.assertEqual(
            'scope:all/sort:age-desc/tags:miki,mini/author:12/page:2/query:alfa/',
            ss.query_string())
        self.assertEqual(
            'scope:all/sort:age-desc/tags:miki,mini/author:12/page:2/query:alfa/',
            ss.deepcopy().query_string())

        ss = SearchState(scope='followed',
                         sort='age-desc',
                         query=' alfa',
                         tags='miki, mini',
                         author='12',
                         page='2',
                         user_logged_in=True)
        self.assertEqual(
            'scope:followed/sort:age-desc/tags:miki,mini/author:12/page:2/query:alfa/',
            ss.query_string())
        self.assertEqual(
            'scope:followed/sort:age-desc/tags:miki,mini/author:12/page:2/query:alfa/',
            ss.deepcopy().query_string())
Exemplo n.º 2
0
    def test_edge_cases_1(self):
        ss = SearchState(
            scope="favorite",  # this is not a valid choice for non-logger users
            sort="age-desc",
            query=" alfa",
            tags="miki, mini",
            author="12",
            page="2",
            user_logged_in=False,
        )
        self.assertEqual("scope:all/sort:age-desc/query:alfa/tags:miki,mini/author:12/page:2/", ss.query_string())
        self.assertEqual(
            "scope:all/sort:age-desc/query:alfa/tags:miki,mini/author:12/page:2/", ss.deepcopy().query_string()
        )

        ss = SearchState(
            scope="favorite",
            sort="age-desc",
            query=" alfa",
            tags="miki, mini",
            author="12",
            page="2",
            user_logged_in=True,
        )
        self.assertEqual("scope:favorite/sort:age-desc/query:alfa/tags:miki,mini/author:12/page:2/", ss.query_string())
        self.assertEqual(
            "scope:favorite/sort:age-desc/query:alfa/tags:miki,mini/author:12/page:2/", ss.deepcopy().query_string()
        )
Exemplo n.º 3
0
    def test_edge_cases_1(self):
        ss = SearchState(
            scope='followed', # this is not a valid choice for non-logger users
            sort='age-desc',
            query=' alfa',
            tags='miki, mini',
            author='12',
            page='2',

            user_logged_in=False
        )
        self.assertEqual(
            'scope:all/sort:age-desc/tags:miki,mini/author:12/page:2/query:alfa/',
            ss.query_string()
        )
        self.assertEqual(
            'scope:all/sort:age-desc/tags:miki,mini/author:12/page:2/query:alfa/',
            ss.deepcopy().query_string()
        )

        ss = SearchState(
            scope='followed',
            sort='age-desc',
            query=' alfa',
            tags='miki, mini',
            author='12',
            page='2',

            user_logged_in=True
        )
        self.assertEqual(
            'scope:followed/sort:age-desc/tags:miki,mini/author:12/page:2/query:alfa/',
            ss.query_string()
        )
        self.assertEqual(
            'scope:followed/sort:age-desc/tags:miki,mini/author:12/page:2/query:alfa/',
            ss.deepcopy().query_string()
        )
Exemplo n.º 4
0
 def test_all_valid_selectors(self):
     ss = SearchState(scope='unanswered',
                      sort='age-desc',
                      query=' alfa',
                      tags='miki, mini',
                      author='12',
                      page='2',
                      user_logged_in=False)
     self.assertEqual(
         'scope:unanswered/sort:age-desc/tags:miki,mini/author:12/page:2/query:alfa/',
         ss.query_string())
     self.assertEqual(
         'scope:unanswered/sort:age-desc/tags:miki,mini/author:12/page:2/query:alfa/',
         ss.deepcopy().query_string())
Exemplo n.º 5
0
    def test_deep_copy_1(self):
        # deepcopy() is tested in other tests as well, but this is a dedicated test
        # just to make sure in one place that everything is ok:
        # 1. immutable properties (strings, ints) are just assigned to the copy
        # 2. lists are cloned so that change in the copy doesn't affect the original

        ss = SearchState(
            scope='unanswered',
            sort='votes-desc',
            query='hejho #tag1 [tag: tag2] @user @user2 title:"what is this?"',
            tags='miki, mini',
            author='12',
            page='2',
            user_logged_in=False)
        ss2 = ss.deepcopy()

        self.assertEqual(ss.scope, 'unanswered')
        self.assertTrue(ss.scope is ss2.scope)

        self.assertEqual(ss.sort, 'votes-desc')
        self.assertTrue(ss.sort is ss2.sort)

        self.assertEqual(
            ss.query,
            'hejho #tag1 [tag: tag2] @user @user2 title:"what is this?"')
        self.assertTrue(ss.query is ss2.query)

        self.assertFalse(ss.tags is ss2.tags)
        self.assertCountEqual(ss.tags, ss2.tags)

        self.assertEqual(ss.author, 12)
        self.assertTrue(ss.author is ss2.author)

        self.assertEqual(ss.page, 2)
        self.assertTrue(ss.page is ss2.page)

        self.assertEqual(ss.stripped_query, 'hejho')
        self.assertTrue(ss.stripped_query is ss2.stripped_query)

        self.assertCountEqual(ss.query_tags, ['tag1', 'tag2'])
        self.assertFalse(ss.query_tags is ss2.query_tags)

        self.assertCountEqual(ss.query_users, ['user', 'user2'])
        self.assertFalse(ss.query_users is ss2.query_users)

        self.assertEqual(ss.query_title, 'what is this?')
        self.assertTrue(ss.query_title is ss2.query_title)

        self.assertEqual(ss._questions_url, reverse('questions'))
        self.assertTrue(ss._questions_url is ss2._questions_url)
Exemplo n.º 6
0
    def test_deep_copy_1(self):
        # deepcopy() is tested in other tests as well, but this is a dedicated test
        # just to make sure in one place that everything is ok:
        # 1. immutable properties (strings, ints) are just assigned to the copy
        # 2. lists are cloned so that change in the copy doesn't affect the original

        ss = SearchState(
            scope='unanswered',
            sort='votes-desc',
            query='hejho # tag1 [tag: tag2] @user @user2 title:"what is this?"',
            tags='miki, mini',
            author='12',
            page='2',

            user_logged_in=False
        )
        ss2 = ss.deepcopy()

        self.assertEqual(ss.scope, 'unanswered')
        self.assertTrue(ss.scope is ss2.scope)

        self.assertEqual(ss.sort, 'votes-desc')
        self.assertTrue(ss.sort is ss2.sort)

        self.assertEqual(ss.query, 'hejho # tag1 [tag: tag2] @user @user2 title:"what is this?"')
        self.assertTrue(ss.query is ss2.query)

        self.assertFalse(ss.tags is ss2.tags)
        self.assertItemsEqual(ss.tags, ss2.tags)

        self.assertEqual(ss.author, 12)
        self.assertTrue(ss.author is ss2.author)

        self.assertEqual(ss.page, 2)
        self.assertTrue(ss.page is ss2.page)

        self.assertEqual(ss.stripped_query, 'hejho')
        self.assertTrue(ss.stripped_query is ss2.stripped_query)

        self.assertItemsEqual(ss.query_tags, ['tag1', 'tag2'])
        self.assertFalse(ss.query_tags is ss2.query_tags)

        self.assertItemsEqual(ss.query_users, ['user', 'user2'])
        self.assertFalse(ss.query_users is ss2.query_users)

        self.assertEqual(ss.query_title, 'what is this?')
        self.assertTrue(ss.query_title is ss2.query_title)

        self.assertEqual(ss._questions_url, urlresolvers.reverse('questions'))
        self.assertTrue(ss._questions_url is ss2._questions_url)
Exemplo n.º 7
0
    def test_deep_copy_1(self):
        # deepcopy() is tested in other tests as well, but this is a dedicated test
        # just to make sure in one place that everything is ok:
        # 1. immutable properties (strings, ints) are just assigned to the copy
        # 2. lists are cloned so that change in the copy doesn't affect the original

        ss = SearchState(
            scope="unanswered",
            sort="votes-desc",
            query='hejho #tag1 [tag: tag2] @user @user2 title:"what is this?"',
            tags="miki, mini",
            author="12",
            page="2",
            user_logged_in=False,
        )
        ss2 = ss.deepcopy()

        self.assertEqual(ss.scope, "unanswered")
        self.assertTrue(ss.scope is ss2.scope)

        self.assertEqual(ss.sort, "votes-desc")
        self.assertTrue(ss.sort is ss2.sort)

        self.assertEqual(ss.query, 'hejho #tag1 [tag: tag2] @user @user2 title:"what is this?"')
        self.assertTrue(ss.query is ss2.query)

        self.assertFalse(ss.tags is ss2.tags)
        self.assertItemsEqual(ss.tags, ss2.tags)

        self.assertEqual(ss.author, 12)
        self.assertTrue(ss.author is ss2.author)

        self.assertEqual(ss.page, 2)
        self.assertTrue(ss.page is ss2.page)

        self.assertEqual(ss.stripped_query, "hejho")
        self.assertTrue(ss.stripped_query is ss2.stripped_query)

        self.assertItemsEqual(ss.query_tags, ["tag1", "tag2"])
        self.assertFalse(ss.query_tags is ss2.query_tags)

        self.assertItemsEqual(ss.query_users, ["user", "user2"])
        self.assertFalse(ss.query_users is ss2.query_users)

        self.assertEqual(ss.query_title, "what is this?")
        self.assertTrue(ss.query_title is ss2.query_title)

        self.assertEqual(ss._questions_url, urlresolvers.reverse("questions"))
        self.assertTrue(ss._questions_url is ss2._questions_url)
Exemplo n.º 8
0
    def test_all_valid_selectors(self):
        ss = SearchState(
            scope='unanswered',
            sort='age-desc',
            query=' alfa',
            tags='miki, mini',
            author='12',
            page='2',

            user_logged_in=False
        )
        self.assertEqual(
            'scope:unanswered/sort:age-desc/tags:miki,mini/author:12/page:2/query:alfa/',
            ss.query_string()
        )
        self.assertEqual(
            'scope:unanswered/sort:age-desc/tags:miki,mini/author:12/page:2/query:alfa/',
            ss.deepcopy().query_string()
        )
Exemplo n.º 9
0
 def test_all_valid_selectors(self):
     ss = SearchState(
         scope="unanswered",
         sort="age-desc",
         query=" alfa",
         tags="miki, mini",
         author="12",
         page="2",
         user_logged_in=False,
     )
     self.assertEqual(
         "scope:unanswered/sort:age-desc/query:alfa/tags:miki,mini/author:12/page:2/", ss.query_string()
     )
     self.assertEqual(
         "scope:unanswered/sort:age-desc/query:alfa/tags:miki,mini/author:12/page:2/", ss.deepcopy().query_string()
     )