def test_parse_file_price(self): db = Database() # redirect stdout to capture capture = StringIO() sys.stdout = capture self.assertEqual(parse_file("test_files\\incorrect_prices.txt",db), 3) # reset sys.stdout = sys.__stdout__ self.assertEqual("Error in parsing. Make sure in line 4 the price is a valid value\n",capture.getvalue())
def test_parse_file_date(self): db = Database() # redirect stdout to capture capture = StringIO() sys.stdout = capture self.assertEqual(parse_file("test_files\\incorrect_dates.txt", db), 2) # reset sys.stdout = sys.__stdout__ self.assertEqual("Error in parsing. Make sure in line 2 the time is in ISO-8061 format\n",capture.getvalue())
def test_parse_file_units(self): db = Database() # redirect stdout to capture capture = StringIO() sys.stdout = capture self.assertEqual(parse_file("test_files\\incorrect_units.txt", db), 4) # reset sys.stdout = sys.__stdout__ self.assertEqual("Error in parsing. Make sure in line 3 the number of " "units is a valid value\n",capture.getvalue())
def test_parse_file_filename(self): db = Database() # redirect stdout to capture capture = StringIO() sys.stdout = capture self.assertEqual(parse_file("test_files\\not_real_file_name.txt",db),1) # reset sys.stdout = sys.__stdout__ self.assertEqual("Could not open file path \" test_files\\not_real_file_name.txt \". " "Make sure file is in correct directory\n",capture.getvalue())
def test_search_db_datetime_not_included(self): db = Database() # redirect stdout to capture capture = StringIO() sys.stdout = capture val = parse_file("test_files\\sample_test.txt",db) # ensures parse_file is working correctly self.assertEqual(val, 0) self.assertEqual(search_db(datetime.datetime(2017,5,31),db),0) # reset sys.stdout = sys.__stdout__ self.assertEqual("Price at 2017-05-31 00:00:00+00:00 : 20.15\n",capture.getvalue())
def test_get_statistics_empty(self): db = Database() # redirect stdout to capture capture = StringIO() sys.stdout = capture val = parse_file("test_files\\empty_file.txt", db) # ensures parse_file is working correctly self.assertEqual(val, 0) self.assertEqual(get_statistics(datetime.datetime(2000, 1, 2, 3), datetime.datetime(2020, 1, 2, 3), db), 7) # reset sys.stdout = sys.__stdout__ self.assertEqual("File has no entries therefore cannot return information\n",capture.getvalue())
def test_search_db_datetime_less(self): db = Database() # redirect stdout to capture capture = StringIO() sys.stdout = capture val = parse_file("test_files\\sample_test.txt",db) # ensures parse_file is working correctly self.assertEqual(val, 0) self.assertEqual(search_db(datetime.datetime(2005,1,2,3),db),0) # reset sys.stdout = sys.__stdout__ self.assertEqual("Datetime object given is smaller than the smallest entry found in the file. " "Returning information about smallest item\nPrice at 2017-03-01 13:37:59+00:00 : 21.37\n",capture.getvalue())
def test_search_db_comparison(self): db = Database() # redirect stdout to capture capture = StringIO() sys.stdout = capture val = parse_file("test_files\\sample_test.txt",db) # ensures parse_file is working correctly self.assertEqual(val, 0) self.assertEqual(search_db(3,db),6) # reset sys.stdout = sys.__stdout__ self.assertEqual("Object given is <class 'int'> and cannot be " "compared to a datetime object\n",capture.getvalue())
def test_get_statistics_none(self): db = Database() # redirect stdout to capture capture = StringIO() sys.stdout = capture val = parse_file("test_files\\sample_test.txt", db) # ensures parse_file is working correctly self.assertEqual(val, 0) self.assertEqual(get_statistics(datetime.datetime(2017, 5, 14, 3), datetime.datetime(2017, 5, 18, 3), db), 0) # reset sys.stdout = sys.__stdout__ self.assertEqual("No entries in the file within the given dates. Giving information about adjacent dates.\n" "Price at 2017-05-18 03:00:00+00:00 : 21.63\n",capture.getvalue())
def test_search_db_datetime_greater(self): db = Database() # redirect stdout to capture capture = StringIO() sys.stdout = capture val = parse_file("test_files\\sample_test.txt",db) # ensures parse_file is working correctly self.assertEqual(val, 0) self.assertEqual(search_db(datetime.datetime(2020,1,2,3),db),0) # reset sys.stdout = sys.__stdout__ self.assertEqual("Datetime object given is larger than the largest entry found in the file. " "Returning information about largest item\nPrice at 2017-06-12 09:51:21+00:00 : 17.21\n",capture.getvalue())
def test_get_statistics_one(self): db = Database() # redirect stdout to capture capture = StringIO() sys.stdout = capture val = parse_file("test_files\\sample_test.txt",db) # ensures parse_file is working correctly self.assertEqual(val, 0) self.assertEqual(get_statistics(datetime.datetime(2017,5,14,3),datetime.datetime(2017,5,30,3),db),0) # reset23.09 21 sys.stdout = sys.__stdout__ self.assertEqual("Average Price: 23.09\nMinimum Price: 23.09\n" "Maximum Price: 23.09\nMedian Units: 21.00\n" "Standard Deviation of Units: 0.00\n", capture.getvalue())
def test_get_statistics_all(self): db = Database() # redirect stdout to capture capture = StringIO() sys.stdout = capture val = parse_file("test_files\\sample_test.txt",db) # ensures parse_file is working correctly self.assertEqual(val, 0) self.assertEqual(get_statistics(datetime.datetime(2000,1,2,3),datetime.datetime(2020,1,2,3),db),0) # reset sys.stdout = sys.__stdout__ self.assertEqual("Average Price: 20.46\nMinimum Price: 17.21\n" "Maximum Price: 23.09\nMedian Units: 77.50\n" "Standard Deviation of Units: 34615.62\n",capture.getvalue())
def test_parse_file(self): db = Database() self.assertEqual(parse_file("test_files\\sample_test.txt",db), 0)