fix: format all code with black

and from now on should not deviate from that...
This commit is contained in:
Lance Edgar 2025-08-31 12:42:59 -05:00
parent 45dabce956
commit 33ac0e008e
17 changed files with 730 additions and 576 deletions

View file

@ -1,4 +1,4 @@
#-*- coding: utf-8; -*-
# -*- coding: utf-8; -*-
from collections import OrderedDict
from unittest.mock import patch
@ -17,34 +17,36 @@ class TestImportHandler(DataTestCase):
handler = self.make_handler()
self.assertEqual(str(handler), "None → None")
handler.source_title = 'CSV'
handler.target_title = 'Wutta'
handler.source_title = "CSV"
handler.target_title = "Wutta"
self.assertEqual(str(handler), "CSV → Wutta")
def test_actioning(self):
handler = self.make_handler()
self.assertEqual(handler.actioning, 'importing')
self.assertEqual(handler.actioning, "importing")
handler.orientation = mod.Orientation.EXPORT
self.assertEqual(handler.actioning, 'exporting')
self.assertEqual(handler.actioning, "exporting")
def test_get_key(self):
handler = self.make_handler()
self.assertEqual(handler.get_key(), 'to_None.from_None.import')
self.assertEqual(handler.get_key(), "to_None.from_None.import")
with patch.multiple(mod.ImportHandler, source_key='csv', target_key='wutta'):
self.assertEqual(handler.get_key(), 'to_wutta.from_csv.import')
with patch.multiple(mod.ImportHandler, source_key="csv", target_key="wutta"):
self.assertEqual(handler.get_key(), "to_wutta.from_csv.import")
def test_get_spec(self):
handler = self.make_handler()
self.assertEqual(handler.get_spec(), 'wuttasync.importing.handlers:ImportHandler')
self.assertEqual(
handler.get_spec(), "wuttasync.importing.handlers:ImportHandler"
)
def test_get_title(self):
handler = self.make_handler()
self.assertEqual(handler.get_title(), "None → None")
handler.source_title = 'CSV'
handler.target_title = 'Wutta'
handler.source_title = "CSV"
handler.target_title = "Wutta"
self.assertEqual(handler.get_title(), "CSV → Wutta")
def test_get_source_title(self):
@ -54,16 +56,16 @@ class TestImportHandler(DataTestCase):
self.assertIsNone(handler.get_source_title())
# which is really using source_key as fallback
handler.source_key = 'csv'
self.assertEqual(handler.get_source_title(), 'csv')
handler.source_key = "csv"
self.assertEqual(handler.get_source_title(), "csv")
# can also use (defined) generic fallback
handler.generic_source_title = 'CSV'
self.assertEqual(handler.get_source_title(), 'CSV')
handler.generic_source_title = "CSV"
self.assertEqual(handler.get_source_title(), "CSV")
# or can set explicitly
handler.source_title = 'XXX'
self.assertEqual(handler.get_source_title(), 'XXX')
handler.source_title = "XXX"
self.assertEqual(handler.get_source_title(), "XXX")
def test_get_target_title(self):
handler = self.make_handler()
@ -72,23 +74,23 @@ class TestImportHandler(DataTestCase):
self.assertIsNone(handler.get_target_title())
# which is really using target_key as fallback
handler.target_key = 'wutta'
self.assertEqual(handler.get_target_title(), 'wutta')
handler.target_key = "wutta"
self.assertEqual(handler.get_target_title(), "wutta")
# can also use (defined) generic fallback
handler.generic_target_title = 'Wutta'
self.assertEqual(handler.get_target_title(), 'Wutta')
handler.generic_target_title = "Wutta"
self.assertEqual(handler.get_target_title(), "Wutta")
# or can set explicitly
handler.target_title = 'XXX'
self.assertEqual(handler.get_target_title(), 'XXX')
handler.target_title = "XXX"
self.assertEqual(handler.get_target_title(), "XXX")
def test_process_data(self):
model = self.app.model
handler = self.make_handler()
# empy/no-op should commit (not fail)
with patch.object(handler, 'commit_transaction') as commit_transaction:
with patch.object(handler, "commit_transaction") as commit_transaction:
handler.process_data()
commit_transaction.assert_called_once_with()
@ -96,8 +98,8 @@ class TestImportHandler(DataTestCase):
handler.process_data()
# dry-run should rollback
with patch.object(handler, 'commit_transaction') as commit_transaction:
with patch.object(handler, 'rollback_transaction') as rollback_transaction:
with patch.object(handler, "commit_transaction") as commit_transaction:
with patch.object(handler, "rollback_transaction") as rollback_transaction:
handler.process_data(dry_run=True)
self.assertFalse(commit_transaction.called)
rollback_transaction.assert_called_once_with()
@ -106,36 +108,38 @@ class TestImportHandler(DataTestCase):
handler.process_data(dry_run=True)
# outright error should cause rollback
with patch.object(handler, 'commit_transaction') as commit_transaction:
with patch.object(handler, 'rollback_transaction') as rollback_transaction:
with patch.object(handler, 'get_importer', side_effect=RuntimeError):
self.assertRaises(RuntimeError, handler.process_data, 'BlahBlah')
with patch.object(handler, "commit_transaction") as commit_transaction:
with patch.object(handler, "rollback_transaction") as rollback_transaction:
with patch.object(handler, "get_importer", side_effect=RuntimeError):
self.assertRaises(RuntimeError, handler.process_data, "BlahBlah")
self.assertFalse(commit_transaction.called)
rollback_transaction.assert_called_once_with()
# fake importer class/data
mock_source_objects = [{'name': 'foo', 'value': 'bar'}]
mock_source_objects = [{"name": "foo", "value": "bar"}]
class SettingImporter(ToSqlalchemy):
model_class = model.Setting
target_session = self.session
def get_source_objects(self):
return mock_source_objects
# now for a "normal" one
handler.importers['Setting'] = SettingImporter
handler.importers["Setting"] = SettingImporter
self.assertEqual(self.session.query(model.Setting).count(), 0)
handler.process_data('Setting')
handler.process_data("Setting")
self.assertEqual(self.session.query(model.Setting).count(), 1)
# then add another mock record
mock_source_objects.append({'name': 'foo2', 'value': 'bar2'})
handler.process_data('Setting')
mock_source_objects.append({"name": "foo2", "value": "bar2"})
handler.process_data("Setting")
self.assertEqual(self.session.query(model.Setting).count(), 2)
# nb. even if dry-run, record is added
# (rollback would happen later in that case)
mock_source_objects.append({'name': 'foo3', 'value': 'bar3'})
handler.process_data('Setting', dry_run=True)
mock_source_objects.append({"name": "foo3", "value": "bar3"})
handler.process_data("Setting", dry_run=True)
self.assertEqual(self.session.query(model.Setting).count(), 3)
def test_consume_kwargs(self):
@ -148,10 +152,10 @@ class TestImportHandler(DataTestCase):
# captures dry-run flag
self.assertFalse(handler.dry_run)
kw['dry_run'] = True
kw["dry_run"] = True
result = handler.consume_kwargs(kw)
self.assertIs(result, kw)
self.assertTrue(kw['dry_run'])
self.assertTrue(kw["dry_run"])
self.assertTrue(handler.dry_run)
def test_define_importers(self):
@ -165,24 +169,23 @@ class TestImportHandler(DataTestCase):
handler = self.make_handler()
# normal
handler.importers['Setting'] = Importer
importer = handler.get_importer('Setting', model_class=model.Setting)
handler.importers["Setting"] = Importer
importer = handler.get_importer("Setting", model_class=model.Setting)
self.assertIsInstance(importer, Importer)
# specifying empty keys
handler.importers['Setting'] = Importer
importer = handler.get_importer('Setting', model_class=model.Setting,
keys=None)
handler.importers["Setting"] = Importer
importer = handler.get_importer("Setting", model_class=model.Setting, keys=None)
self.assertIsInstance(importer, Importer)
importer = handler.get_importer('Setting', model_class=model.Setting,
keys='')
importer = handler.get_importer("Setting", model_class=model.Setting, keys="")
self.assertIsInstance(importer, Importer)
importer = handler.get_importer('Setting', model_class=model.Setting,
keys=[])
importer = handler.get_importer("Setting", model_class=model.Setting, keys=[])
self.assertIsInstance(importer, Importer)
# key not found
self.assertRaises(KeyError, handler.get_importer, 'BunchOfNonsense', model_class=model.Setting)
self.assertRaises(
KeyError, handler.get_importer, "BunchOfNonsense", model_class=model.Setting
)
class TestFromFileHandler(DataTestCase):
@ -192,8 +195,8 @@ class TestFromFileHandler(DataTestCase):
def test_process_data(self):
handler = self.make_handler()
path = self.write_file('data.txt', '')
with patch.object(mod.ImportHandler, 'process_data') as process_data:
path = self.write_file("data.txt", "")
with patch.object(mod.ImportHandler, "process_data") as process_data:
# bare
handler.process_data()
@ -217,7 +220,7 @@ class TestToSqlalchemyHandler(DataTestCase):
def test_begin_target_transaction(self):
handler = self.make_handler()
with patch.object(handler, 'make_target_session') as make_target_session:
with patch.object(handler, "make_target_session") as make_target_session:
make_target_session.return_value = self.session
self.assertIsNone(handler.target_session)
handler.begin_target_transaction()
@ -225,7 +228,7 @@ class TestToSqlalchemyHandler(DataTestCase):
def test_rollback_target_transaction(self):
handler = self.make_handler()
with patch.object(handler, 'make_target_session') as make_target_session:
with patch.object(handler, "make_target_session") as make_target_session:
make_target_session.return_value = self.session
self.assertIsNone(handler.target_session)
handler.begin_target_transaction()
@ -235,7 +238,7 @@ class TestToSqlalchemyHandler(DataTestCase):
def test_commit_target_transaction(self):
handler = self.make_handler()
with patch.object(handler, 'make_target_session') as make_target_session:
with patch.object(handler, "make_target_session") as make_target_session:
make_target_session.return_value = self.session
self.assertIsNone(handler.target_session)
handler.begin_target_transaction()
@ -250,6 +253,6 @@ class TestToSqlalchemyHandler(DataTestCase):
def test_get_importer_kwargs(self):
handler = self.make_handler()
handler.target_session = self.session
kw = handler.get_importer_kwargs('Setting')
self.assertIn('target_session', kw)
self.assertIs(kw['target_session'], self.session)
kw = handler.get_importer_kwargs("Setting")
self.assertIn("target_session", kw)
self.assertIs(kw["target_session"], self.session)