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())
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() )
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() )
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())
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)
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)
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)
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() )
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() )