#!/usr/bin/python import sys, os if __name__ == '__main__': sys.path = ([os.path.dirname(os.path.dirname(os.path.dirname( os.path.realpath(__file__))))] + sys.path) __requires__='Bazki' import pkg_resources pkg_resources.require('Bazki') import unittest, warnings from bazbase import db, model, testing from bazbase.model import * import gameki testing.set_up_for_tests() class TestNames(unittest.TestCase): def setUp(self): db.begin_transaction() try: model.clear() Prop(u'name', u'string', default=('')) Prop(u'substitution', u'macro', default=('')) root = Element(u'Root', parent=None) dude = Element(u'Dude', parent=root) dude[u'name'] = ("Dr. Alex ``Bulldozer'' Anderson, Esq.") dude[u'gender'] = ('A') dude[u'substitution'] = ( '<>') model.session.flush() except: db.abort_transaction() raise def tearDown(self): db.abort_transaction() def test_standalone(self): dude = Element.get(u'Dude') dude[u'comment'] = ('<>') self.assertEqual('Alex', dude[u'comment'].render()) dude[u'comment'] = ('<>') self.assertEqual(u'Dr. Alex \u201CBulldozer\u201D Anderson, Esq.', dude[u'comment'].render()) dude[u'comment'] = ('<>') self.assertEqual('Dr. Anderson', dude[u'comment'].render()) dude[u'comment'] = ('<>') self.assertEqual('Alex', dude[u'comment'].render()) dude[u'comment'] = ('<>') self.assertEqual('he/she', dude[u'comment'].render()) dude[u'comment'] = ('<>') self.assertEqual('Him/her', dude[u'comment'].render()) def test_in_content(self): root = Element.get(u'Root') root[u'comment'] = ('<><><>') self.assertEqual('Alex', root[u'comment'].render()) root[u'comment'] = ('<><><>') self.assertEqual(u'Dr. Alex \u201CBulldozer\u201D Anderson, Esq.', root[u'comment'].render()) root[u'comment'] = ('<><><>') self.assertEqual('Dr. Anderson', root[u'comment'].render()) root[u'comment'] = ('<><><>') self.assertEqual('Alex', root[u'comment'].render()) root[u'comment'] = ('<><><>') self.assertEqual('he/she', root[u'comment'].render()) root[u'comment'] = ('<><><>') self.assertEqual('Him/her', root[u'comment'].render()) def test_in_argstr(self): root = Element.get(u'Root') root[u'comment'] = ('<>') self.assertEqual('Alex', root[u'comment'].render()) root[u'comment'] = ('<>') self.assertEqual(u'Dr. Alex \u201CBulldozer\u201D Anderson, Esq.', root[u'comment'].render()) root[u'comment'] = ('<>') self.assertEqual('Dr. Anderson', root[u'comment'].render()) root[u'comment'] = ('<>') self.assertEqual('Alex', root[u'comment'].render()) root[u'comment'] = ('<>') self.assertEqual('he/she', root[u'comment'].render()) root[u'comment'] = ('<>') self.assertEqual('Him/her', root[u'comment'].render()) def test_gender(self): dude = Element.get(u'Dude') dude[u'gender'] = 'M' dude[u'comment'] = ("My <>, my dad's <>, crashed <> car which <> bought <> when a mongoose cheated <>.") self.assertEqual(u"My uncle, my dad's brother, crashed his car which he bought himself when a mongoose cheated him.", dude[u'comment'].render()) dude[u'gender'] = 'F' self.assertEqual(u"My aunt, my dad's sister, crashed her car which she bought herself when a mongoose cheated her.", dude[u'comment'].render()) dude[u'gender'] = 'N' self.assertEqual(u"My uncle/aunt, my dad's sibling, crashed its car which it bought itself when a mongoose cheated it.", dude[u'comment'].render()) dude[u'gender'] = '?' self.assertEqual(u"My uncle/aunt, my dad's sibling, crashed his/her car which he/she bought himself/herself when a mongoose cheated him/her.", dude[u'comment'].render()) dude[u'gender'] = 'S' self.assertEqual(u"My uncle/aunt, my dad's sibling, crashed eir car which ey bought emself when a mongoose cheated em.", dude[u'comment'].render()) class TestProduction(unittest.TestCase): def setUp(self): db.begin_transaction() try: model.clear() Prop(u'name', u'string', default=('')) Prop(u'topleft', u'string', default=('')) Prop(u'topright', u'string', default=('')) Prop(u'bottomleft', u'string', default=('')) Prop(u'bottomright', u'string', default=('')) Prop(u'badgecolor', u'string', default=('')) root = Element(u'Root', parent=None) root[u'name'] = 'Bob' root[u'topleft'] = 'TL' root[u'topright'] = 'TR' root[u'bottomleft'] = 'BL' root[u'bottomright'] = 'BR' model.session.flush() except: db.abort_transaction() raise def tearDown(self): db.abort_transaction() def test_badge(self): root = Element.get(u'Root') root[u'badgecolor'] = 'white' root[u'comment'] = '''<> == <> == <>''' self.assertIn('