From d50458ca8545f1b99b206593b138d4a6a51a3ec7 Mon Sep 17 00:00:00 2001 From: Mike Naberezny Date: Tue, 16 Dec 2014 21:02:14 -0800 Subject: [PATCH] Make address_for() more like label_for(), add tests --- py65/tests/utils/test_addressing.py | 14 ++++++++++++++ py65/utils/addressing.py | 9 +++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/py65/tests/utils/test_addressing.py b/py65/tests/utils/test_addressing.py index 222ca39..fac4d17 100644 --- a/py65/tests/utils/test_addressing.py +++ b/py65/tests/utils/test_addressing.py @@ -124,6 +124,20 @@ class AddressParserTests(unittest.TestCase): parser.labels = {'foo': 0xFFFFFF} self.assertRaises(OverflowError, parser.number, 'foo+5') + # address_for + + def test_address_for_returns_label(self): + parser = AddressParser(labels={'chrout': 0xFFD2}) + self.assertEqual(0xffd2, parser.address_for('chrout')) + + def test_address_for_returns_none_by_default(self): + parser = AddressParser(labels={}) + self.assertEqual(None, parser.address_for('chrout')) + + def test_adderss_for_returns_alternate_default(self): + parser = AddressParser(labels={}) + self.assertEqual('foo', parser.address_for('chrout', 'foo')) + # label_for def test_label_for_returns_label(self): diff --git a/py65/utils/addressing.py b/py65/utils/addressing.py index fab7424..29c4054 100644 --- a/py65/utils/addressing.py +++ b/py65/utils/addressing.py @@ -27,6 +27,11 @@ class AddressParser(object): maxwidth = property(_get_maxwidth, _set_maxwidth) + def address_for(self, label, default=None): + """Given a label, return the corresponding address or a default. + """ + return self.labels.get(label, default) + def label_for(self, address, default=None): """Given an address, return the corresponding label or a default. """ @@ -35,10 +40,6 @@ class AddressParser(object): return label return default - def address_for(self, label): - """Given a label, return the corresponding address or None.""" - return self.labels.get(label, None) - def number(self, num): """Parse a string containing a label or number into an address. """