Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
:returns: None
"""
# Get this month's file list
down_filelist, _ = gen_file_list()
# Iterate over every file in this week
week = {}
for file in down_filelist[-7:]:
week[file.split('/')[-1]] = calculate(read_files([file])) // MB
data = sorted(week.items())
print("Data downloaded this week:\n")
termgraph.chart(
labels=["%s%s" % (d[0], ordinal_suffix(int(d[0]))) for d in data],
data=[d[1] for d in data],
args=dict(
width=30,
suffix=" MB",
format="{:>5.0f}",
)
)
print("Total: %d MB" % sum([d[1] for d in data]))
def test_check_data_mismatching_data_and_labels_count_exits_with_one(self):
labels = ['2007', '2008', '2009', '2010', '2011', '2012', '2014']
data = [[183.32], [231.23], [16.43], [50.21], [508.97],
[212.05]]
args = {'filename': 'data/ex1.dat', 'title': None, 'width': 50,
'format': '{:<5.2f}', 'suffix': '', 'no_labels': False,
'color': None, 'vertical': False, 'stacked': False,
'different_scale': False, 'calendar': False,
'start_dt': None, 'custom_tick': '', 'delim': '',
'verbose': False, 'version': False}
with self.assertRaises(SystemExit) as cm:
tg.check_data(labels, data, args)
self.assertEqual(cm.exception.code, 1)
def test_check_data_returns_correct_result(self):
labels = ['2007', '2008', '2009', '2010', '2011', '2012', '2014']
data = [[183.32], [231.23], [16.43], [50.21], [508.97],
[212.05], [1.0]]
args = {'filename': 'data/ex1.dat', 'title': None, 'width': 50,
'format': '{:<5.2f}', 'suffix': '', 'no_labels': False,
'color': None, 'vertical': False, 'stacked': False,
'different_scale': False, 'calendar': False,
'start_dt': None, 'custom_tick': '', 'delim': '',
'verbose': False, 'version': False}
result = tg.check_data(labels, data, args)
assert result == []
def test_check_data_missing_data_for_categories_count_exits_with_one(self):
labels = ['2007', '2008', '2009', '2010', '2011', '2012', '2014']
data = [[183.32, 190.52], [231.23, 5.0], [16.43, 53.1], [50.21, 7.0],
[508.97, 10.45], [212.05], [30.0, 20.0]]
args = {'filename': 'data/ex4.dat', 'title': None, 'width': 50,
'format': '{:<5.2f}', 'suffix': '', 'no_labels': False,
'color': None, 'vertical': False, 'stacked': False,
'different_scale': False, 'calendar': False,
'start_dt': None, 'custom_tick': '', 'delim': '',
'verbose': False, 'version': False}
with self.assertRaises(SystemExit) as cm:
tg.check_data(labels, data, args)
self.assertEqual(cm.exception.code, 1)
def test_check_data_stacked_with_no_color_returns_correct_result(self):
labels = ['2007', '2008', '2009', '2010', '2011', '2012', '2014']
data = [[183.32, 190.52], [231.23, 5.0], [16.43, 53.1], [50.21, 7.0],
[508.97, 10.45], [212.05, 20.2], [30.0, 20.0]]
args = {'filename': 'data/ex4.dat', 'title': None, 'width': 50,
'format': '{:<5.2f}', 'suffix': '', 'no_labels': False,
'color': None, 'vertical': False, 'stacked': True,
'different_scale': False, 'calendar': False,
'start_dt': None, 'custom_tick': '', 'delim': '',
'verbose': False, 'version': False}
result = tg.check_data(labels, data, args)
assert result == [91, 94]
def test_check_data_mismatching_color_and_category_count_exits_with_one(self):
labels = ['2007', '2008', '2009', '2010', '2011', '2012', '2014']
data = [[183.32], [231.23], [16.43], [50.21], [508.97],
[212.05], [1.0]]
args = {'filename': 'data/ex1.dat', 'title': None, 'width': 50,
'format': '{:<5.2f}', 'suffix': '', 'no_labels': False,
'color': ['red', 'blue'], 'vertical': False, 'stacked': False,
'different_scale': False, 'calendar': False,
'start_dt': None, 'custom_tick': '', 'delim': '',
'verbose': False, 'version': False}
with self.assertRaises(SystemExit) as cm:
tg.check_data(labels, data, args)
self.assertEqual(cm.exception.code, 1)
def test_check_data_with_color_returns_correct_result(self):
labels = ['2007', '2008', '2009', '2010', '2011', '2012', '2014']
data = [[183.32], [231.23], [16.43], [50.21], [508.97],
[212.05], [1.0]]
args = {'filename': 'data/ex1.dat', 'title': None, 'width': 50,
'format': '{:<5.2f}', 'suffix': '', 'no_labels': False,
'color': ['red'], 'vertical': False, 'stacked': False,
'different_scale': False, 'calendar': False,
'start_dt': None, 'custom_tick': '', 'delim': '',
'verbose': False, 'version': False}
result = tg.check_data(labels, data, args)
assert result == [91]
def test_check_data_vertical_multiple_series_same_scale_exits_with_one(self):
labels = ['2007', '2008', '2009', '2010', '2011', '2012', '2014']
data = [[183.32, 190.52], [231.23, 5.0], [16.43, 53.1], [50.21, 7.0],
[508.97, 10.45], [212.05, 20.2], [30.0, 20.0]]
args = {'filename': 'data/ex4.dat', 'title': None, 'width': 50,
'format': '{:<5.2f}', 'suffix': '', 'no_labels': False,
'color': None, 'vertical': True, 'stacked': False,
'different_scale': False, 'calendar': False,
'start_dt': None, 'custom_tick': '', 'delim': '',
'verbose': False, 'version': False}
with self.assertRaises(SystemExit) as cm:
tg.check_data(labels, data, args)
self.assertEqual(cm.exception.code, 1)
def test_chart_multiple_series_different_scale_prints_correctly(self):
with patch('sys.stdout', new=StringIO()) as output:
colors = [91, 94]
data = [[183.32, 190.52], [231.23, 5.0], [16.43, 53.1], [50.21, 7.0],
[508.97, 10.45], [212.05, 20.2], [30.0, 20.0]]
args = {'filename': 'data/ex4.dat', 'title': None, 'width': 50,
'format': '{:<5.2f}', 'suffix': '', 'no_labels': False,
'color': None, 'vertical': False, 'stacked': False,
'different_scale': True, 'calendar': False,
'start_dt': None, 'custom_tick': '', 'delim': '',
'verbose': False, 'version': False}
labels = ['2007', '2008', '2009', '2010', '2011', '2012', '2014']
tg.chart(colors, data, args, labels)
output = output.getvalue().strip()
assert output == '2007: \x1b[91m▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\x1b[0m 183.32\n2008: \x1b[91m▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\x1b[0m 231.23\n2009: \x1b[91m▇\x1b[0m 16.43\n2010: \x1b[91m▇▇▇▇\x1b[0m 50.21\n2011: \x1b[91m▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\x1b[0m 508.97\n2012: \x1b[91m▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\x1b[0m 212.05\n2014: \x1b[91m▇▇\x1b[0m 30.00'
def test_chart_multiple_series_no_colors_prints_correctly(self):
with patch('sys.stdout', new=StringIO()) as output:
colors = []
data = [[183.32, 190.52], [231.23, 5.0], [16.43, 53.1], [50.21, 7.0],
[508.97, 10.45], [212.05, 20.2], [30.0, 20.0]]
args = {'filename': 'data/ex4.dat', 'title': None, 'width': 50,
'format': '{:<5.2f}', 'suffix': '', 'no_labels': False,
'color': None, 'vertical': False, 'stacked': False,
'different_scale': False, 'calendar': False,
'start_dt': None, 'custom_tick': '', 'delim': '',
'verbose': False, 'version': False}
labels = ['2007', '2008', '2009', '2010', '2011', '2012', '2014']
tg.chart(colors, data, args, labels)
output = output.getvalue().strip()
assert output == '2007: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 183.32\n ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 190.52\n2008: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 231.23\n ▇ 5.00 \n2009: ▇▇▇▇ 16.43\n ▇▇▇▇▇▇▇▇▇▇▇▇▇ 53.10\n2010: ▇▇▇▇▇▇▇▇▇▇▇▇▇ 50.21\n ▇ 7.00 \n2011: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 508.97\n ▇▇ 10.45\n2012: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 212.05\n ▇▇▇▇▇ 20.20\n2014: ▇▇▇▇▇▇▇ 30.00\n ▇▇▇▇▇ 20.00'