def test_subset_size_less_one(self): """Test exception and error message: subset_size < 1 """ with self.assertRaises(ValueError) as context: list(moving_average([1, 2, 3, 4, 5, 6], 0)) self.assertTrue( 'subset_size must be 1 or larger' in str(context.exception))
def test_data_size_less_subset_size(self): """Test exception and error message: data < subset_size """ with self.assertRaises(ValueError) as context: list(moving_average([1, 2, 3, 4, 5, 6], 7)) self.assertTrue( 'subset_size must be smaller' in str(context.exception))
def test_proper_calculation_with_subset_size_1(self): self.assertEqual(list(moving_average([1, 2, 3, 4, 5, 6], 1)), [1, 2, 3, 4, 5, 6])
def test_subset_size_is_not_int(self): with self.assertRaisesRegex(TypeError, 'subset_size must be integer'): list(moving_average([1, 2, 3, 4, 5, 6], "2"))
def test_proper_calculation_with_subset_size_2(self): self.assertEqual(list(moving_average([1, 2, 3, 4, 5, 6], 2)), [1.5, 2.5, 3.5, 4.5, 5.5])
if parsed_args.spreadsheet: spreadsheet = google_client.open_by_key(parsed_args.spreadsheet) else: spreadsheet = google_client.open_by_url(parsed_args.link) except Exception as e: sys.exit("Spreadsheet not found. Walk on home boy.\n{}".format(e)) list_of_worksheets = [sheet.title for sheet in spreadsheet.worksheets()] for sheet_title in list_of_worksheets: worksheet = spreadsheet.worksheet_by_title(sheet_title) sheet_values = worksheet.all_values() available_columns = [i.lower() for i in sheet_values[0]] if 'date' not in available_columns or 'visitors' not in available_columns: print('"date" or "visitors" column is absent' ' in {} worksheet. Skipping processing...'.format(sheet_title)) break visitors_position = available_columns.index('visitors') + 1 fetched_visitors_list = [ int(i) for i in worksheet.get_col(visitors_position)[1:] ] ma = list(moving_average(fetched_visitors_list, 2)) ma.insert(0, "Moving average") # Adding moving average column to the worksheet worksheet.insert_cols(len(available_columns), values=ma) else: print('Use --help for more detail')