Example #1
0
def test_merge_records_doctest():
    data1 = bytes(range(0, 32))
    data2 = bytes(range(96, 128))
    blocks1 = list(chop_blocks(data1, 16, start=0))
    blocks2 = list(chop_blocks(data2, 16, start=96))
    records1 = blocks_to_records(blocks1, MotorolaRecord)
    records2 = blocks_to_records(blocks2, IntelRecord)
    IntelRecord.readdress(records2)
    data_records1 = get_data_records(records1)
    data_records2 = get_data_records(records2)
    merged_records = merge_records([data_records1, data_records2])
    merged_blocks = records_to_blocks(merged_records)
    ans_ref = merge(blocks1 + blocks2)
    ans_out = merged_blocks
    assert ans_ref == ans_out
Example #2
0
def test_blocks_to_records_doctest():
    data = bytes(range(256))
    blocks = list(chop_blocks(data, 16))
    records = blocks_to_records(blocks, MotorolaRecord)
    ans_ref = merge(blocks)
    ans_out = records_to_blocks(records)
    assert ans_ref == ans_out
Example #3
0
 def test_write_records_doctest(self):
     blocks = [(0, b'abc'), (16, b'def')]
     records = blocks_to_records(blocks, MotorolaRecord)
     stream = io.StringIO()
     MotorolaRecord.write_records(stream, records)
     ans_out = stream.getvalue()
     ans_ref = ('S0030000FC\n'
                'S1060000616263D3\n'
                'S1060010646566BA\n'
                'S5030002FA\n'
                'S9030000FC\n')
     assert ans_out == ans_ref
Example #4
0
 def test_save_records_doctest(self, tmppath):
     path = str(tmppath / 'save_records.mot')
     blocks = [(0, b'abc'), (16, b'def')]
     records = blocks_to_records(blocks, MotorolaRecord)
     MotorolaRecord.save_records(path, records)
     with open(path, 'rt') as f:
         ans_out = f.read()
     ans_ref = ('S0030000FC\n'
                'S1060000616263D3\n'
                'S1060010646566BA\n'
                'S5030002FA\n'
                'S9030000FC\n')
     assert ans_out == ans_ref
Example #5
0
    def test_build_standalone(self):
        data = bytes(range(256))
        blocks = list(chop_blocks(data, 16))
        records = blocks_to_records(blocks, BinaryRecord)
        data_records = get_data_records(records)
        data_records2 = list(BinaryRecord.build_standalone(records))
        assert data_records == data_records2

        with pytest.raises(ValueError, match='unexpected positional arg'):
            next(BinaryRecord.build_standalone((), Ellipsis))

        with pytest.raises(ValueError, match='unexpected keyword arg'):
            next(BinaryRecord.build_standalone((), _=Ellipsis))
Example #6
0
def test_get_max_data_length_doctest():
    data = bytes(range(256))
    blocks = list(chop_blocks(data, 16))
    records = blocks_to_records(blocks, MotorolaRecord)
    data_records = get_data_records(records)
    assert get_max_data_length(data_records) == 16
Example #7
0
def test_get_data_records_doctest():
    data = bytes(range(256))
    blocks = list(chop_blocks(data, 16))
    records = blocks_to_records(blocks, MotorolaRecord)
    assert all(r.is_data() for r in get_data_records(records))