def _test_sft(self, skool, exp_sft, write_hex=0, preserve_base=False, min_address=0, max_address=65536): skoolfile = StringIO(textwrap.dedent(skool).strip()) writer = SftWriter(skoolfile, write_hex, preserve_base) writer.write(min_address, max_address) sft = self.out.getvalue() self.assertEqual(textwrap.dedent(exp_sft).strip(), sft.rstrip())
def _test_sft(self, skool, exp_sft, write_hex=0, preserve_base=False, min_address=0, max_address=65536): skoolfile = StringIO(skool) writer = SftWriter(skoolfile, write_hex, preserve_base) writer.write(min_address, max_address) sft = self.out.getvalue().split('\n')[:-1] self.assertEqual(exp_sft, sft)
def run(skoolfile, options): writer = SftWriter(skoolfile, options.write_hex, options.preserve_base) writer.write(options.start, options.end)
def test_invalid_address(self): writer = SftWriter(self.write_text_file('c4000f RET')) with self.assertRaises(SkoolParsingError) as cm: writer.write() self.assertEqual(cm.exception.args[0], "Invalid address (4000f):\nc4000f RET")
def _test_sft(self, skool, exp_sft, write_hex=0, preserve_base=False, min_address=0, max_address=65536): skoolfile = self.write_text_file(skool, suffix='.skool') writer = SftWriter(skoolfile, write_hex, preserve_base) writer.write(min_address, max_address) sft = self.out.getvalue().split('\n')[:-1] self.assertEqual(exp_sft, sft)
def test_skool_file_ending_with_blank_line(self): skool = "c32768 RET\n\n" exp_sft = "cC32768,1\n" SftWriter(StringIO(skool)).write() self.assertEqual(self.out.getvalue(), exp_sft)
def test_s_directive_invalid_value(self): writer = SftWriter(StringIO('s30000 DEFS 10,y')) with self.assertRaisesRegex(SkoolParsingError, "^Invalid integer 'y': DEFS 10,y$"): writer.write()