Esempio n. 1
0
class ValidateTest(SeecrTestCase):
    def setUp(self):
        SeecrTestCase.setUp(self)
        self.validate = Validate(xsd)
        self.interceptor = CallTrace('interceptor', returnValues={
            'all_unknown': (x for x in ['done']),
            'any_unknown': (x for x in ['done']),
            'do_unknown': None,
            'call_unknown': 'done',
            'logException': None}, onlySpecifiedMethods=True)
        self.validate.addObserver(self.interceptor)
        self.observable = Observable()
        self.observable.addObserver(self.validate)

    def testValid(self):
        validXml = '<lom xmlns="http://ltsc.ieee.org/xsd/LOM"/>'
        self.assertEquals(['done'], list(compose(self.observable.all.someMethod(parse(StringIO(validXml))))))
        self.assertEquals(['done'], list(compose(self.observable.any.someMethod(parse(StringIO(validXml))))))

        self.interceptor.calledMethods.reset()
        self.observable.do.someMethod(parse(StringIO(validXml)))
        self.assertEquals(['do_unknown'], [m.name for m in self.interceptor.calledMethods])

        self.interceptor.calledMethods.reset()
        self.assertEquals('done', self.observable.call.someMethod(parse(StringIO(validXml))))

    def testInvalid(self):
        invalidXml = '<lom xmlns="http://ltsc.ieee.org/xsd/LOM_this_should_not_work"/>'
        try:
            list(compose(self.observable.any.someMethod(parse(StringIO(invalidXml)))))
            self.fail('must raise exception')
        except ValidateException:
            pass
        self.assertEquals(['logException'], [m.name for m in self.interceptor.calledMethods])
        exception = self.interceptor.calledMethods[0].args[0]
        self.assertTrue("ERROR:SCHEMASV:SCHEMAV_CVC_ELT_1: Element '{http://ltsc.ieee.org/xsd/LOM_this_should_not_work}lom': No matching global declaration available for the validation root." in str(exception), str(exception))
        self.assertTrue("1 %s" % invalidXml in str(exception), str(exception))

        self.assertRaises(ValidateException, lambda: list(compose(self.observable.all.someMethod(parse(StringIO(invalidXml))))))
        self.assertRaises(ValidateException, lambda: list(compose(self.observable.do.someMethod(parse(StringIO(invalidXml))))))
        self.assertRaises(ValidateException, lambda: list(compose(self.observable.call.someMethod(parse(StringIO(invalidXml))))))

    def testAssertInvalidString(self):
        invalid = '<OAI-PMH/>'
        try:
            list(compose(self.observable.any.message(parse(StringIO(invalid)))))
            self.fail('must raise exception')
        except ValidateException, e:
            pass
        self.assertEquals(['logException'], [m.name for m in self.interceptor.calledMethods])
        exception = self.interceptor.calledMethods[0].args[0]
        self.assertTrue("ERROR:SCHEMASV:SCHEMAV_CVC_ELT_1: Element 'OAI-PMH': No matching global declaration available for the validation root." in str(exception), str(exception))
        self.assertTrue("1 <OAI-PMH/>" in str(exception), str(exception))
Esempio n. 2
0
 def setUp(self):
     SeecrTestCase.setUp(self)
     self.validate = Validate(xsd)
     self.interceptor = CallTrace('interceptor',
                                  returnValues={
                                      'all_unknown': (x for x in ['done']),
                                      'any_unknown': (x for x in ['done']),
                                      'do_unknown': None,
                                      'call_unknown': 'done',
                                      'logException': None
                                  },
                                  onlySpecifiedMethods=True)
     self.validate.addObserver(self.interceptor)
     self.observable = Observable()
     self.observable.addObserver(self.validate)
Esempio n. 3
0
    def testTransparencyInCaseOfNoAnyAndCallResponders(self):
        observer = CallTrace('observer',
                             returnValues={
                                 'f': (i for i in [42]),
                                 'g': 42
                             })
        root = be((Observable(), (Validate(xsd), ), (observer, )))

        self.assertEqual([42], list(compose(root.any.f())))
        self.assertEqual(42, root.call.g())
Esempio n. 4
0
 def setUp(self):
     SeecrTestCase.setUp(self)
     self.validate = Validate(xsd)
     self.interceptor = CallTrace('interceptor', returnValues={
         'all_unknown': (x for x in ['done']),
         'any_unknown': (x for x in ['done']),
         'do_unknown': None,
         'call_unknown': 'done',
         'logException': None}, onlySpecifiedMethods=True)
     self.validate.addObserver(self.interceptor)
     self.observable = Observable()
     self.observable.addObserver(self.validate)
Esempio n. 5
0
class ValidateTest(SeecrTestCase):
    def setUp(self):
        SeecrTestCase.setUp(self)
        self.validate = Validate(xsd)
        self.interceptor = CallTrace('interceptor',
                                     returnValues={
                                         'all_unknown': (x for x in ['done']),
                                         'any_unknown': (x for x in ['done']),
                                         'do_unknown': None,
                                         'call_unknown': 'done',
                                         'logException': None
                                     },
                                     onlySpecifiedMethods=True)
        self.validate.addObserver(self.interceptor)
        self.observable = Observable()
        self.observable.addObserver(self.validate)

    def testValid(self):
        validXml = '<lom xmlns="http://ltsc.ieee.org/xsd/LOM"/>'
        self.assertEqual(['done'],
                         list(
                             compose(
                                 self.observable.all.someMethod(
                                     parse(StringIO(validXml))))))
        self.assertEqual(['done'],
                         list(
                             compose(
                                 self.observable.any.someMethod(
                                     parse(StringIO(validXml))))))

        self.interceptor.calledMethods.reset()
        self.observable.do.someMethod(parse(StringIO(validXml)))
        self.assertEqual(['do_unknown'],
                         [m.name for m in self.interceptor.calledMethods])

        self.interceptor.calledMethods.reset()
        self.assertEqual(
            'done', self.observable.call.someMethod(parse(StringIO(validXml))))

    def testInvalid(self):
        invalidXml = '<lom xmlns="http://ltsc.ieee.org/xsd/LOM_this_should_not_work"/>'
        try:
            list(
                compose(
                    self.observable.any.someMethod(parse(
                        StringIO(invalidXml)))))
            self.fail('must raise exception')
        except ValidateException:
            pass
        self.assertEqual(['logException'],
                         [m.name for m in self.interceptor.calledMethods])
        exception = self.interceptor.calledMethods[0].args[0]
        self.assertTrue(
            "ERROR:SCHEMASV:SCHEMAV_CVC_ELT_1: Element '{http://ltsc.ieee.org/xsd/LOM_this_should_not_work}lom': No matching global declaration available for the validation root."
            in str(exception), str(exception))
        self.assertTrue("1 %s" % invalidXml in str(exception), str(exception))

        self.assertRaises(
            ValidateException, lambda: list(
                compose(
                    self.observable.all.someMethod(parse(StringIO(invalidXml)))
                )))
        self.assertRaises(
            ValidateException, lambda: list(
                compose(
                    self.observable.do.someMethod(parse(StringIO(invalidXml))))
            ))
        self.assertRaises(
            ValidateException, lambda: list(
                compose(
                    self.observable.call.someMethod(parse(StringIO(invalidXml))
                                                    ))))

    def testAssertInvalidString(self):
        invalid = '<OAI-PMH/>'
        try:
            list(compose(self.observable.any.message(parse(
                StringIO(invalid)))))
            self.fail('must raise exception')
        except ValidateException as e:
            pass
        self.assertEqual(['logException'],
                         [m.name for m in self.interceptor.calledMethods])
        exception = self.interceptor.calledMethods[0].args[0]
        self.assertTrue(
            "ERROR:SCHEMASV:SCHEMAV_CVC_ELT_1: Element 'OAI-PMH': No matching global declaration available for the validation root."
            in str(exception), str(exception))
        self.assertTrue("1 <OAI-PMH/>" in str(exception), str(exception))

    def testTransparencyInCaseOfNoAnyAndCallResponders(self):
        observer = CallTrace('observer',
                             returnValues={
                                 'f': (i for i in [42]),
                                 'g': 42
                             })
        root = be((Observable(), (Validate(xsd), ), (observer, )))

        self.assertEqual([42], list(compose(root.any.f())))
        self.assertEqual(42, root.call.g())