'Verify that the string representation of an address object conforms to a
simple pattern (the usual one for Python object reprs) and contains
values which accurately reflect the attributes of the address.'

def _stringRepresentation(self, stringFunction):

    addr = self.buildAddress()
    pattern = ''.join(['^', '([^\\(]+Address)', '\\(', '([^)]+)', '\\)', '$'])
    stringValue = stringFunction(addr)
    m = re.match(pattern, stringValue)
    self.assertNotEqual(None, m, ('%s    does    not    match    the    standard    __str__    pattern    ClassName(arg1,    arg2,    etc)' % (stringValue,)))
    self.assertEqual(addr.__class__.__name__, m.group(1))
    args = [x.strip() for x in m.group(2).split(',')]
    self.assertEqual(args, [(argSpec[1] % (getattr(addr, argSpec[0]),)) for argSpec in self.addressArgSpec])
