#!/usr/bin/env python3 """ Tests for model_usage helpers. """ import argparse from datetime import date, timedelta from unittest import TestCase, main from model_usage import filter_by_days, positive_int class TestModelUsage(TestCase): def test_positive_int_accepts_valid_numbers(self): self.assertEqual(positive_int("1"), 1) self.assertEqual(positive_int("7"), 7) def test_positive_int_rejects_zero_and_negative(self): with self.assertRaises(argparse.ArgumentTypeError): positive_int("0") with self.assertRaises(argparse.ArgumentTypeError): positive_int("-3") def test_filter_by_days_keeps_recent_entries(self): today = date.today() entries = [ {"date": (today - timedelta(days=5)).strftime("%Y-%m-%d"), "modelBreakdowns": []}, {"date": (today - timedelta(days=1)).strftime("%Y-%m-%d"), "modelBreakdowns": []}, {"date": today.strftime("%Y-%m-%d"), "modelBreakdowns": []}, ] filtered = filter_by_days(entries, 2) self.assertEqual(len(filtered), 2) self.assertEqual(filtered[0]["date"], (today - timedelta(days=1)).strftime("%Y-%m-%d")) self.assertEqual(filtered[1]["date"], today.strftime("%Y-%m-%d")) if __name__ == "__main__": main()