import unittest
from qbc_qrcode import *


class MyTestCase(unittest.TestCase):
    TEST_LONG_DATA = "word文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果" \
                       "word文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果" \
                       "word文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果" \
                       "word文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果" \
                       "word文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果" \
                       "word文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果" \
                       "word文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果" \
                       "word文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果" \
                       "word文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果" \
                       "word文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果" \
                       "word文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果" \
                       "word文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果Word给用户提供了用于创建专业而优雅的文档工具，帮助用户节省时间，并得到优雅美观的结果"

    def test_make(self):
        self.assertEqual(make('I love Python', '二维码.jpg'), '二维码.jpg')
        self.assertIsNotNone(make('I love Python'))

    def test_make_typeError(self):
        with self.assertRaisesRegex(ParameterTypeError, "^参数类型错误 : 调用make方法时，'data'参数类型错误。$"):
            make(123, '二维码.jpg')
        with self.assertRaisesRegex(ParameterTypeError, "^参数类型错误 : 调用make方法时，'filename'参数类型错误。$"):
            make("I love Python", 123)

        with self.assertRaisesRegex(ParameterTypeError, "^参数类型错误 : 调用make方法时，'data'、'filename'参数类型错误。$"):
            make(123, 123)

    def test_make_valueError(self):
        with self.assertRaisesRegex(ParameterValueError, "^参数数值错误 : 调用make方法时，'data'参数不在允许范围内。$"):
            make(MyTestCase.TEST_LONG_DATA, '1.jpg')

        with self.assertRaisesRegex(ParameterValueError, "^参数数值错误 : 调用make方法时，'filename'参数不在允许范围内。$"):
            make("I love Python", '1.wav')

        with self.assertRaisesRegex(ParameterValueError, "^参数数值错误 : 调用make方法时，'data'、'filename'参数不在允许范围内。$"):
           make(MyTestCase.TEST_LONG_DATA, '1.wav')


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