def test_positive(self): 'Положительный тест' input = {'a' : '1', 'b' : {'c' : '2.0', 'd' : ['1', '2', '3']}} accepts = {'a' : int, 'b' : {'c' : (float, positive), 'd' : array(int)}} xml = '<input><a type="int">1</a><b type="group"><c type="float positive">2.0</c><d type="array"><item>1</item><item>2</item><item>3</item></d></b></input>' self.assertEqual(etree.tounicode(serialize_input(input, accepts)), xml)
def test_positive_error(self): 'Положительный тест с ошибками' input = {'a' : '1,', 'b' : {'c' : '-2.0', 'd' : ['1', '2', '3']}} accepts = {'a' : int, 'b' : {'c' : (float, positive), 'd' : array(int)}} errors = {'a' : 'int', 'b.c' : 'positive'} xml = '<input><a type="int" error="int">1,</a><b type="group"><c type="float positive" error="positive">-2.0</c><d type="array"><item>1</item><item>2</item><item>3</item></d></b></input>' self.assertEqual(etree.tounicode(serialize_input(input, accepts, errors = errors)), xml)
# -*- coding: utf-8 -*- 'Тесты для модуля accepts.py' import os, sys tests = os.path.dirname(os.path.realpath(__file__)) sys.path.append(os.path.dirname(tests) + '/models') import unittest from accepts import array f = array(float) class ArrayTest(unittest.TestCase): 'Тесты для accepts.array' def test_empty(self): 'Пустой массив' self.assertEqual(f([]), []) def test_positive(self): 'Положительный тест' self.assertEqual(f(['2.3', '4.5']), [2.3, 4.5]) def test_non_list(self): 'Входное значение не является списком' self.assertRaises(Exception, f, 3.3) def test_non_float(self): 'Один из элементов списка не является числом' self.assertRaises(Exception, f, ['2,3', '4.5'])