def test_fetch(self): """Test whether a list of questions is returned""" question = read_file('data/stackexchange_question') httpretty.register_uri(httpretty.GET, STACKEXCHANGE_QUESTIONS_URL, body=question, status=200) stack = StackExchange(site="stackoverflow", tagged="python", token="aaa", max_questions=1) questions = [question for question in stack.fetch(from_date=None)] self.assertEqual(questions[0]['origin'], 'stackoverflow') self.assertEqual(questions[0]['uuid'], '43953bd75d1d4dbedb457059acb4b79fcf6712a8') self.assertEqual(questions[0]['updated_on'], 1459975066.0) self.assertEqual(questions[0]['category'], 'question') self.assertEqual(questions[0]['tag'], 'stackoverflow') data = json.loads(question) self.assertDictEqual(questions[0]['data'], data['items'][0])
def test_fetch_from_date(self): """Test whether a list of questions is returned""" question = read_file('data/stackexchange_question') httpretty.register_uri(httpretty.GET, STACKEXCHANGE_QUESTIONS_URL, body=question, status=200) from_date = datetime.datetime(2016, 4, 5) stack = StackExchange(site="stackoverflow", tagged="python", token="aaa", max_questions=1) questions = [question for question in stack.fetch(from_date=from_date)] self.assertEqual(questions[0]['origin'], 'stackoverflow') self.assertEqual(questions[0]['uuid'], '43953bd75d1d4dbedb457059acb4b79fcf6712a8') self.assertEqual(questions[0]['updated_on'], 1459975066.0) self.assertEqual(questions[0]['category'], 'question') self.assertEqual(questions[0]['tag'], 'stackoverflow') #The date on the questions must be greater than from_date self.assertGreater(questions[0]['updated_on'], 1459900800) data = json.loads(question) self.assertDictEqual(questions[0]['data'], data['items'][0])
def test_fetch_from_cache(self): """ Test whether a list of questions is returned from cache """ question = read_file('data/stackexchange_question') httpretty.register_uri(httpretty.GET, STACKEXCHANGE_QUESTIONS_URL, body=question, status=200) # First, we fetch the bugs from the server, storing them # in a cache cache = Cache(self.tmp_path) stack = StackExchange(site="stackoverflow", tagged="python", token="aaa", max_questions=1, cache=cache) questions = [question for question in stack.fetch(from_date=None)] del questions[0]['timestamp'] # Now, we get the bugs from the cache. # The contents should be the same and there won't be # any new request to the server cache_questions = [ cache_question for cache_question in stack.fetch_from_cache() ] del cache_questions[0]['timestamp'] self.assertEqual(cache_questions, questions)
def test_fetch_from_date(self): """Test whether a list of questions is returned""" question = read_file('data/stackexchange_question') httpretty.register_uri(httpretty.GET, STACKEXCHANGE_QUESTIONS_URL, body=question, status=200) expected = { "origin": "stackoverflow", "perceval_version": "0.1.0", "backend_name": "StackExchange", "backend_version": "0.2.0" } #unixtime = 1459900800 from_date = datetime.datetime(2016, 4, 5) stack = StackExchange(site="stackoverflow", tagged="python", token="aaa", max_questions=1) questions = [question for question in stack.fetch(from_date=from_date)] #The date on the questions must be greater than from_date self.assertGreater(questions[0]['updated_on'], 1459900800) for key in expected: self.assertEqual(questions[0][key], expected[key]) data = json.loads(question) self.assertDictEqual(questions[0]['data'], data['items'][0])
def test_fetch_empty(self): """Test whether a list of questions is returned""" # Required fields question = '{"total": 0, "page_size": 0, "quota_remaining": 0, "quota_max": 0, "has_more": false, "items": []}' httpretty.register_uri(httpretty.GET, STACKEXCHANGE_QUESTIONS_URL, body=question, status=200) stack = StackExchange(site="stackoverflow", tagged="python", token="aaa", max_questions=1) questions = [question for question in stack.fetch(from_date=None)] self.assertEqual(len(questions), 0)
def test_fetch_empty(self): """Test whether a list of questions is returned""" # Required fields question = '{"total": 0, "page_size": 0, "quota_remaining": 0, "quota_max": 0, "has_more": false, "items": []}' httpretty.register_uri(httpretty.GET, STACKEXCHANGE_QUESTIONS_URL, body=question, status=200) stack = StackExchange(site="stackoverflow", tagged="python", token="aaa", max_questions=1) questions = [question for question in stack.fetch(from_date=None)] self.assertEqual(len(questions), 0)
def test_fetch_from_cache(self): """ Test whether a list of questions is returned from cache """ question = read_file('data/stackexchange_question') httpretty.register_uri(httpretty.GET, STACKEXCHANGE_QUESTIONS_URL, body=question, status=200) # First, we fetch the bugs from the server, storing them # in a cache cache = Cache(self.tmp_path) stack = StackExchange(site="stackoverflow", tagged="python", token="aaa", max_questions=1, cache=cache) questions = [question for question in stack.fetch(from_date=None)] del questions[0]['timestamp'] # Now, we get the bugs from the cache. # The contents should be the same and there won't be # any new request to the server cache_questions = [cache_question for cache_question in stack.fetch_from_cache()] del cache_questions[0]['timestamp'] self.assertEqual(cache_questions, questions)
def test_fetch(self): """Test whether a list of questions is returned""" question = read_file('data/stackexchange_question') httpretty.register_uri(httpretty.GET, STACKEXCHANGE_QUESTIONS_URL, body=question, status=200) expected = { "origin": "stackoverflow", "perceval_version": "0.1.0", "backend_name": "StackExchange", "backend_version": "0.2.0" } stack = StackExchange(site="stackoverflow", tagged="python", token="aaa", max_questions=1) questions = [question for question in stack.fetch(from_date=None)] for key in expected: self.assertEqual(questions[0][key], expected[key]) data = json.loads(question) self.assertDictEqual(questions[0]['data'], data['items'][0])