Skip to content

Commit

Permalink
code improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
matijakolaric committed Nov 21, 2019
1 parent adf8463 commit 6b9cddb
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 19 deletions.
1 change: 0 additions & 1 deletion music_metadata/edi/tests/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ def transaction_3(self, transaction):
self.assertEqual(record.sequence, 1)
self.assertIn(' 000000X3', str(record.errors[0]))


def test_cwr21_processing(self):
"""
Test EDI part of a CWR2.1 import.
Expand Down
45 changes: 27 additions & 18 deletions music_metadata/edi/transaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,33 +19,42 @@ def __init__(
def __str__(self):
return f'{self.type}{self.sequence:08d}'

@staticmethod
def test_t_sequence(expected_t_sequence, t_sequence):
try:
current_t_sequence = int(t_sequence)
except ValueError:
raise ValueError(
f'Transaction sequence is not an integer {t_sequence}.')
if current_t_sequence != expected_t_sequence:
raise ValueError(
f'Wrong transaction sequence {current_t_sequence}, should be '
f'{expected_t_sequence}')

def test_r_sequence(self, expected_r_sequence, r_sequence):
try:
current_r_sequence = int(r_sequence)
except ValueError:
raise ValueError(
f'Record sequence is not an integer {r_sequence}.')
if current_r_sequence != expected_r_sequence:
raise ValueError(
f'Wrong record sequence {current_r_sequence}, should be '
f'{expected_r_sequence} in transaction {self}')

def split_into_records(self, reraise=True):
expected_t_sequence = self.sequence or 0
for expected_r_sequence, line in enumerate(
self.lines.strip().split('\n')):
try:
t_sequence = line[3:11]
try:
current_t_sequence = int(t_sequence)
except ValueError:
raise ValueError(
f'Transaction sequence is not an integer {t_sequence}.')
if current_t_sequence != expected_t_sequence:
raise ValueError(
f'Wrong transaction sequence {current_t_sequence}, should be '
f'{expected_t_sequence}')
self.test_t_sequence(expected_t_sequence, t_sequence)

r_sequence = line[11:19]
try:
current_r_sequence = int(r_sequence)
except ValueError:
raise ValueError(
f'Record sequence is not an integer {r_sequence}.')
if current_r_sequence != expected_r_sequence:
raise ValueError(
f'Wrong record sequence {current_r_sequence}, should be '
f'{expected_r_sequence} in transaction { self }')
self.test_r_sequence(expected_r_sequence, r_sequence)

yield EDITransactionRecord(line, expected_r_sequence)

except ValueError as e:
self.valid = False
self.errors.append(e)
Expand Down

0 comments on commit 6b9cddb

Please sign in to comment.