#!/usr/bin/python import site, os site.addsitedir(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) __requires__='Bazki' import pkg_resources pkg_resources.require('Bazki') import unittest from gameki.macros import parsename, PRE, SUF class ParsenameTest(unittest.TestCase): def assertDictEquals(self, expected, actual): for k in expected: self.assertTrue(k in actual, "Expected key %s not in %s." % (k, actual)) self.assertEquals(expected[k], actual[k], "Expected value for %s to be '%s', not '%s'." % (k, expected[k], actual[k])) for k in actual: self.assertTrue(k in expected, "Unexpected key %s in %s." % (k, actual)) def test_basic(self): self.assertDictEquals(dict(full='Ph43t0n', formal='Ph43t0n', informal='Ph43t0n', prefix='', first='Ph43t0n', middle='', last='', suffix=''), parsename('Ph43t0n')) self.assertDictEquals(dict(full='James Bond', formal='Bond', informal='James', prefix='', first='James', middle='', last='Bond', suffix=''), parsename('James Bond')) self.assertDictEquals(dict(full='Wilhelmina R. Locke', formal='Locke', informal='Wilhelmina', prefix='', first='Wilhelmina', middle='R.', last='Locke', suffix=''), parsename('Wilhelmina R. Locke')) self.assertDictEquals(dict(full='Dr. Gregory House', formal='Dr. House', informal='Gregory', prefix='Dr.', first='Gregory', middle='', last='House', suffix=''), parsename('Dr. Gregory House')) self.assertDictEquals(dict(full='Dr. Morden', formal='Dr. Morden', informal='Morden', prefix='Dr.', first='', middle='', last='Morden', suffix=''), parsename('Dr. Morden')) def test_suffixes(self): self.assertDictEquals(dict(full="Martin Luther King, Jr.", formal="King", informal="Martin", prefix="", first="Martin", middle="Luther", last="King", suffix="Jr."), parsename("Martin Luther King, Jr.")) def test_explicit_breaking(self): self.assertDictEquals(dict(full='Commodore Matthew C. Perry', formal='Commodore Perry', informal='Matthew', prefix='Commodore', first='Matthew', middle='C.', last='Perry', suffix=''), parsename('Commodore%sMatthew C. Perry' % PRE)) self.assertDictEquals(dict(full='James Bond Junior', formal='Bond', informal='James', prefix='', first='James', middle='', last='Bond', suffix='Junior'), parsename('James Bond%sJunior' % SUF)) if __name__ == '__main__': unittest.main()