import unittest import tempfile import os from pen_tracker.engine import PenTracker, Pen class TestPenTracker(unittest.TestCase): def setUp(self): self.temp_file = tempfile.NamedTemporaryFile(delete=False, suffix='.csv') self.temp_file.close() self.tracker = PenTracker(self.temp_file.name) def tearDown(self): os.unlink(self.temp_file.name) def test_add_and_load_pen(self): pen = Pen(Make="Pilot", Model="Metropolitan", Nib="F") self.tracker.pens.append(pen) self.tracker.save_data() # Load in new tracker new_tracker = PenTracker(self.temp_file.name) self.assertEqual(len(new_tracker.pens), 1) self.assertEqual(new_tracker.pens[0].Make, "Pilot") self.assertEqual(new_tracker.pens[0].Model, "Metropolitan") def test_sorting(self): self.tracker.pens = [ Pen(Make="Z", Model="A"), Pen(Make="A", Model="B") ] self.tracker.save_data() new_tracker = PenTracker(self.temp_file.name) self.assertEqual(new_tracker.pens[0].Make, "A") self.assertEqual(new_tracker.pens[1].Make, "Z") if __name__ == '__main__': unittest.main()