mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2025-12-17 16:17:12 +00:00
refactored wallet identification
This commit is contained in:
@@ -164,3 +164,33 @@ class DrawingsPathlibTests(TestCase):
|
||||
# Spot-check a few entries
|
||||
self.assertIn('bigdir/file0.txt', mapping)
|
||||
self.assertIn(f'bigdir/file{count-1}.txt', mapping)
|
||||
|
||||
def test_assign_wallets_for_model_assigns_and_returns_wallets(self):
|
||||
w = Wallet.objects.create(fpath='x', walletname='2025#20')
|
||||
df = DrawingFile.objects.create(dwgpath='assign.th', dwgname='assign')
|
||||
|
||||
res = drawings._assign_wallets_for_model(df, '2025#20', parser_label='AssignTest')
|
||||
|
||||
self.assertTrue(res)
|
||||
self.assertIn(w, df.dwgwallets.all())
|
||||
|
||||
def test_assign_wallets_for_model_creates_dataissue_on_missing(self):
|
||||
df = DrawingFile.objects.create(dwgpath='missing.th', dwgname='missing')
|
||||
|
||||
drawings._assign_wallets_for_model(df, 'NONEXISTENT', parser_label='AssignMissing')
|
||||
|
||||
di = DataIssue.objects.filter(parser='AssignMissing', message__contains='not found')
|
||||
self.assertTrue(di.exists())
|
||||
|
||||
def test_assign_wallets_for_model_records_dataissue_on_exception(self):
|
||||
# Patch Wallet.objects.filter to raise an exception
|
||||
from unittest.mock import patch
|
||||
|
||||
df = DrawingFile.objects.create(dwgpath='err.th', dwgname='err')
|
||||
|
||||
with patch('troggle.core.models.wallets.Wallet.objects.filter') as mock_filter:
|
||||
mock_filter.side_effect = RuntimeError('boom')
|
||||
drawings._assign_wallets_for_model(df, 'WHATEVER', parser_label='AssignError')
|
||||
|
||||
di = DataIssue.objects.filter(parser='AssignError', message__contains='Exception')
|
||||
self.assertTrue(di.exists())
|
||||
|
||||
Reference in New Issue
Block a user