1.4 XString

class XString( [len], [len_min], [len_max], [into], [not_into])
Use it to check if a value can be understood as a string ... The parameters into and not_into are list of string, The parameters len, len_min and len_max must be integer.
# --
# Copyright (C) CEA, EDF
# Author : Erwan ADAM (CEA)
# --

import unittest

from xdata import *

class XStringTestCase(unittest.TestCase):
    def test(self):
        x = XString()
        self.failUnlessRaises(XValueError, x, 3.2)
        self.failUnlessEqual(x("test"), "test")
        return
    def test_into(self):
        self.failUnlessRaises(XValueError, XString, into=[1.1])
        x = XString(into=["toto", "titi"])
        self.failUnlessRaises(XValueError, x, "test")
        self.failUnlessEqual(x("toto"), "toto")
        return
    def test_len(self):
        self.failUnlessRaises(XValueError, XString, len="toto")
        self.failUnlessRaises(XValueError, XString, len=-1)
        x = XString(len=3)
        self.failUnlessRaises(XValueError, x, "a")
        self.failUnlessRaises(XValueError, x, "aaaaa")
        self.failUnlessEqual(x("aaa"), "aaa")
        return
    def test_len_min_max(self):
        x = XString(len_min=2, len_max=3)
        self.failUnlessRaises(XValueError, x, "a")
        self.failUnlessRaises(XValueError, x, "aaaa")
        self.failUnlessEqual(x("aa"), "aa")
        self.failUnlessEqual(x("aaa"), "aaa")
        return
    def test_into_nocase(self):
        x = XString(into=["toto", "titi"])
        self.failUnlessRaises(XValueError, x, "test")
        self.failUnlessEqual(x("ToTo"), "toto")
        self.failUnlessEqual(x("TITI"), "titi")
        x = XString(into=["Castem", "PorFlow"])
        self.failUnlessRaises(XValueError, x, "test")
        self.failUnlessEqual(x("castem"), "Castem")
        self.failUnlessEqual(x("porflow"), "PorFlow")
        return
    pass

if __name__ == '__main__':
    unittest.main()
    pass



Subsections