1
0
Fork 0
mirror of https://github.com/shlomif/PySolFC.git synced 2025-04-05 00:02:29 -04:00
PySolFC/tests/lib/pysol_tests/kpat_load_save.py
2020-05-06 15:13:05 +03:00

88 lines
2.9 KiB
Python

# Written by Shlomi Fish, under the MIT Expat License.
import unittest
from pysollib.acard import AbstractCard
from pysollib.kpat_load_save import KpatXmlEmitter
from pysollib.kpat_load_save import KpatEmitter
from six.moves import cStringIO
class MyTests(unittest.TestCase):
def test_emitter(self):
f = cStringIO()
e = KpatXmlEmitter(f)
self.assertTrue(e)
e.writeEmptyTag("foo", [("one", "val1"), ("two", "val2")])
self.assertEqual(
f.getvalue(),
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<foo one=\"val1\" two=\"val2\"/>\n")
f = cStringIO()
e = KpatXmlEmitter(f)
self.assertTrue(e)
e.writeStartTag("foo", [("one", "val1"), ("two", "val2")])
e.writeEmptyTag("flutter", [])
e.endTag()
self.assertEqual(
f.getvalue(),
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<foo one=\"val1\" two=\"val2\">\n"
+ "\t<flutter/>\n"
+ "</foo>\n")
f = cStringIO()
e = KpatXmlEmitter(f)
self.assertTrue(e)
e.writeStartTag("foo", [("one", "val1"), ("two", "val2")])
e.writeStartTag("rar", [("z", "zval"), ("a", "aval")])
e.writeEmptyTag("flutter", [])
e.endTag()
e.endTag()
self.assertEqual(
f.getvalue(),
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<foo one=\"val1\" two=\"val2\">\n"
+ "\t<rar z=\"zval\" a=\"aval\">\n"
+ "\t\t<flutter/>\n"
+ "\t</rar>\n"
+ "</foo>\n")
def test_write_card(self):
f = cStringIO()
e = KpatXmlEmitter(f)
self.assertTrue(e)
e.writeCard(card=AbstractCard(1001, 0, 0, 0, 3001), turn="face-up")
self.assertEqual(
f.getvalue(),
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<card id=\"1001\" suit=\"clubs\" " +
"rank=\"ace\" turn=\"face-up\"/>\n"
)
def test_write_card2(self):
f = cStringIO()
e = KpatXmlEmitter(f)
self.assertTrue(e)
e.writeCard(card=AbstractCard(1002, 0, 1, 1, 3001), turn="face-up")
self.assertEqual(
f.getvalue(),
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<card id=\"1002\" suit=\"spades\" " +
"rank=\"two\" turn=\"face-up\"/>\n"
)
def test_write_card3(self):
f = cStringIO()
e = KpatXmlEmitter(f)
self.assertTrue(e)
e.writeCard(card=AbstractCard(1004, 0, 2, 11, 3001), turn="face-up")
self.assertEqual(
f.getvalue(),
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<card id=\"1004\" suit=\"hearts\" " +
"rank=\"queen\" turn=\"face-up\"/>\n"
)
e = KpatEmitter(f)
self.assertTrue(e)