Covert storage to sqlite backed, added ink history
This commit is contained in:
parent
1d16056f4f
commit
c38a3cabc4
12 changed files with 397 additions and 150 deletions
Binary file not shown.
|
|
@ -1,11 +1,11 @@
|
|||
import unittest
|
||||
import tempfile
|
||||
import os
|
||||
from pen_tracker.engine import PenTracker, Pen, InkTracker, Ink
|
||||
import tempfile
|
||||
import unittest
|
||||
from pen_tracker.engine import Ink, InkTracker, Pen, PenTracker
|
||||
|
||||
class TestPenTracker(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.temp_file = tempfile.NamedTemporaryFile(delete=False, suffix='.csv')
|
||||
self.temp_file = tempfile.NamedTemporaryFile(delete=False, suffix='.db')
|
||||
self.temp_file.close()
|
||||
self.tracker = PenTracker(self.temp_file.name)
|
||||
|
||||
|
|
@ -33,11 +33,28 @@ class TestPenTracker(unittest.TestCase):
|
|||
self.assertEqual(new_tracker.pens[0].Make, "A")
|
||||
self.assertEqual(new_tracker.pens[1].Make, "Z")
|
||||
|
||||
def test_pen_ink_history_records_changes(self):
|
||||
pen = Pen(Make="Pilot", Model="Metropolitan", Nib="F", Current_Ink="Blue")
|
||||
self.tracker.pens.append(pen)
|
||||
self.tracker.save_data()
|
||||
|
||||
persisted = self.tracker.pens[0]
|
||||
history = self.tracker.get_ink_history(persisted.id)
|
||||
self.assertEqual(len(history), 1)
|
||||
self.assertEqual(history[0]['ink_name'], "Blue")
|
||||
|
||||
persisted.Current_Ink = "N/A"
|
||||
self.tracker.save_data()
|
||||
|
||||
history = self.tracker.get_ink_history(persisted.id)
|
||||
self.assertEqual(len(history), 2)
|
||||
self.assertEqual(history[-1]['ink_name'], "N/A")
|
||||
|
||||
|
||||
|
||||
class TestInkTracker(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.temp_file = tempfile.NamedTemporaryFile(delete=False, suffix='.csv')
|
||||
self.temp_file = tempfile.NamedTemporaryFile(delete=False, suffix='.db')
|
||||
self.temp_file.close()
|
||||
self.tracker = InkTracker(self.temp_file.name)
|
||||
|
||||
|
|
@ -64,20 +81,14 @@ class TestInkTracker(unittest.TestCase):
|
|||
self.assertEqual(new_tracker.inks[0].Vendor, "A")
|
||||
self.assertEqual(new_tracker.inks[1].Vendor, "Z")
|
||||
|
||||
def test_loads_row_with_extra_trailing_field(self):
|
||||
csv_content = (
|
||||
"Vendor,Name,Color,Purchased,Size,Notes\n"
|
||||
"Waterman,Intense Black,Black,,\"Cartridge,International Short\",\n"
|
||||
"Pilot,Black Cartridge,Black,2024-01-01,Cartridge,Good ink\n"
|
||||
)
|
||||
with open(self.temp_file.name, 'w', encoding='utf-8') as f:
|
||||
f.write(csv_content)
|
||||
def test_save_and_load_ink(self):
|
||||
self.tracker.inks.append(Ink(Vendor='Waterman', Name='Intense Black', Color='Black', Notes='Good ink'))
|
||||
self.tracker.save_data()
|
||||
|
||||
new_tracker = InkTracker(self.temp_file.name)
|
||||
self.assertEqual(len(new_tracker.inks), 2)
|
||||
self.assertEqual(new_tracker.inks[0].Vendor, "Pilot")
|
||||
self.assertEqual(new_tracker.inks[1].Vendor, "Waterman")
|
||||
self.assertEqual(new_tracker.inks[1].Notes, "N/A")
|
||||
self.assertEqual(len(new_tracker.inks), 1)
|
||||
self.assertEqual(new_tracker.inks[0].Vendor, 'Waterman')
|
||||
self.assertEqual(new_tracker.inks[0].Name, 'Intense Black')
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue