atrcopy/test/test_ataridos.py

50 lines
1.5 KiB
Python
Raw Normal View History

from mock import *
2017-03-21 23:25:59 +00:00
from atrcopy import SegmentData, AtariDosFile, InvalidBinaryFile, DefaultSegment, XexContainerSegment
class TestAtariDosFile(object):
def setup(self):
pass
def test_segment(self):
2017-03-21 23:25:59 +00:00
bytes = np.asarray([0xff, 0xff, 0x00, 0x60, 0x01, 0x60, 1, 2], dtype=np.uint8)
rawdata = SegmentData(bytes)
2017-03-21 23:25:59 +00:00
container = XexContainerSegment(rawdata, 0)
image = AtariDosFile(container.rawdata)
image.parse_segments()
2017-03-21 23:25:59 +00:00
print image.segments
assert len(image.segments) == 1
assert len(image.segments[0]) == 2
2017-03-21 23:25:59 +00:00
assert np.all(image.segments[0] == bytes[6:8])
container.resize(16)
for s in image.segments:
s.replace_data(container)
new_segment = DefaultSegment(rawdata[8:16])
new_segment[:] = 99
assert np.all(image.segments[0] == bytes[6:8])
print new_segment[:]
assert np.all(new_segment[:] == 99)
def test_short_segment(self):
bytes = [0xff, 0xff, 0x00, 0x60, 0xff, 0x60, 1, 2]
rawdata = SegmentData(bytes)
image = AtariDosFile(rawdata)
image.parse_segments()
assert len(image.segments) == 1
assert len(image.segments[0]) == 2
def test_err_segment(self):
bytes = [0xff, 0xff, 0x00, 0x60, 0x00, 0x00, 1, 2]
rawdata = SegmentData(bytes)
image = AtariDosFile(rawdata)
with pytest.raises(InvalidBinaryFile):
image.parse_segments()
if __name__ == "__main__":
t = TestAtariDosFile()
t.setup()
t.test_segment()