#!/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('