0s autopkgtest [15:06:45]: starting date and time: 2024-11-09 15:06:45+0000 0s autopkgtest [15:06:45]: git checkout: 6f3be7a8 Fix armhf LXD image generation for plucky 0s autopkgtest [15:06:45]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.2rdjkapf/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:wtforms --apt-upgrade wtforms-alchemy --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=wtforms/3.2.1-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-s390x-8.secgroup --name adt-plucky-s390x-wtforms-alchemy-20241109-150645-juju-7f2275-prod-proposed-migration-environment-15-bb8fcd92-196a-470a-97ec-51b0924e4f82 --image adt/ubuntu-plucky-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-proposed-migration-s390x -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 134s autopkgtest [15:08:59]: testbed dpkg architecture: s390x 135s autopkgtest [15:09:00]: testbed apt version: 2.9.8 135s autopkgtest [15:09:00]: @@@@@@@@@@@@@@@@@@@@ test bed setup 135s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 136s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [15.3 kB] 136s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [104 kB] 136s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [1004 kB] 137s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [7016 B] 137s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x Packages [125 kB] 137s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x Packages [696 kB] 137s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse s390x Packages [16.6 kB] 138s Fetched 2043 kB in 2s (904 kB/s) 138s Reading package lists... 140s Reading package lists... 140s Building dependency tree... 140s Reading state information... 140s Calculating upgrade... 140s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 140s Reading package lists... 140s Building dependency tree... 140s Reading state information... 140s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 141s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 141s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 141s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 141s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 142s Reading package lists... 142s Reading package lists... 142s Building dependency tree... 142s Reading state information... 142s Calculating upgrade... 142s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 142s Reading package lists... 142s Building dependency tree... 142s Reading state information... 142s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 145s autopkgtest [15:09:10]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP Mon Sep 16 12:49:35 UTC 2024 146s autopkgtest [15:09:11]: @@@@@@@@@@@@@@@@@@@@ apt-source wtforms-alchemy 148s Get:1 http://ftpmaster.internal/ubuntu plucky/universe wtforms-alchemy 0.18.0-4 (dsc) [2858 B] 148s Get:2 http://ftpmaster.internal/ubuntu plucky/universe wtforms-alchemy 0.18.0-4 (tar) [50.2 kB] 148s Get:3 http://ftpmaster.internal/ubuntu plucky/universe wtforms-alchemy 0.18.0-4 (diff) [8688 B] 148s gpgv: Signature made Tue Apr 30 08:17:31 2024 UTC 148s gpgv: using RSA key B70DFC6F134FECFC011E62AA83016014251D1DB0 148s gpgv: issuer "c.schoenert@t-online.de" 148s gpgv: Can't check signature: No public key 148s dpkg-source: warning: cannot verify inline signature for ./wtforms-alchemy_0.18.0-4.dsc: no acceptable signature found 148s autopkgtest [15:09:13]: testing package wtforms-alchemy version 0.18.0-4 151s autopkgtest [15:09:16]: build not needed 152s autopkgtest [15:09:17]: test upstream: preparing testbed 155s Reading package lists... 155s Building dependency tree... 155s Reading state information... 155s Starting pkgProblemResolver with broken count: 0 155s Starting 2 pkgProblemResolver with broken count: 0 155s Done 156s The following additional packages will be installed: 156s libjs-jquery libjs-sphinxdoc libjs-underscore python3-all python3-arrow 156s python3-colour python3-dateutil python3-decorator python3-dnspython 156s python3-email-validator python3-flexmock python3-greenlet python3-infinity 156s python3-iniconfig python3-intervals python3-packaging python3-phonenumbers 156s python3-pluggy python3-pytest python3-six python3-sqlalchemy 156s python3-sqlalchemy-i18n python3-sqlalchemy-utils python3-validators 156s python3-wtforms python3-wtforms-alchemy python3-wtforms-components 156s python3-wtforms-test 156s Suggested packages: 156s python-arrow-doc python3-trio python3-aioquic python3-h2 python3-httpx 156s python3-httpcore python-greenlet-dev python-greenlet-doc 156s python-sqlalchemy-doc python3-asyncpg python3-pg8000 python3-psycopg2 156s python3-psycopg2cffi python3-aiosqlite python3-mariadb-connector 156s python3-mysqldb python3-mysql.connector python3-pyodbc python3-pymssql 156s python3-cx-oracle python3-oracledb python-sqlalchemy-utils-doc 156s python3-django python3-django-localflavor 156s Recommended packages: 156s javascript-common python3-sqlalchemy-ext 156s The following NEW packages will be installed: 156s autopkgtest-satdep libjs-jquery libjs-sphinxdoc libjs-underscore python3-all 156s python3-arrow python3-colour python3-dateutil python3-decorator 156s python3-dnspython python3-email-validator python3-flexmock python3-greenlet 156s python3-infinity python3-iniconfig python3-intervals python3-packaging 156s python3-phonenumbers python3-pluggy python3-pytest python3-six 156s python3-sqlalchemy python3-sqlalchemy-i18n python3-sqlalchemy-utils 156s python3-validators python3-wtforms python3-wtforms-alchemy 156s python3-wtforms-components python3-wtforms-test 156s 0 upgraded, 29 newly installed, 0 to remove and 0 not upgraded. 156s Need to get 4362 kB/4362 kB of archives. 156s After this operation, 38.0 MB of additional disk space will be used. 156s Get:1 /tmp/autopkgtest.xtjucd/1-autopkgtest-satdep.deb autopkgtest-satdep s390x 0 [784 B] 156s Get:2 http://ftpmaster.internal/ubuntu plucky/main s390x libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 156s Get:3 http://ftpmaster.internal/ubuntu plucky/main s390x libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 156s Get:4 http://ftpmaster.internal/ubuntu plucky/main s390x libjs-sphinxdoc all 7.4.7-3 [157 kB] 157s Get:5 http://ftpmaster.internal/ubuntu plucky/main s390x python3-all s390x 3.12.6-0ubuntu1 [890 B] 157s Get:6 http://ftpmaster.internal/ubuntu plucky/main s390x python3-six all 1.16.0-7 [13.1 kB] 157s Get:7 http://ftpmaster.internal/ubuntu plucky/main s390x python3-dateutil all 2.9.0-2 [80.3 kB] 157s Get:8 http://ftpmaster.internal/ubuntu plucky/main s390x python3-arrow all 1.3.0-1.1ubuntu1 [56.1 kB] 157s Get:9 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-colour all 0.1.5-4 [22.8 kB] 157s Get:10 http://ftpmaster.internal/ubuntu plucky/main s390x python3-decorator all 5.1.1-5 [10.1 kB] 157s Get:11 http://ftpmaster.internal/ubuntu plucky/main s390x python3-dnspython all 2.6.1-1ubuntu1 [163 kB] 157s Get:12 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-email-validator all 2.2.0-1 [28.5 kB] 157s Get:13 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-flexmock all 0.12.1-1 [20.6 kB] 157s Get:14 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-infinity all 1.5-3 [3988 B] 157s Get:15 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-iniconfig all 1.1.1-2 [6024 B] 157s Get:16 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-intervals all 0.9.2-2 [11.6 kB] 157s Get:17 http://ftpmaster.internal/ubuntu plucky/main s390x python3-packaging all 24.1-1 [41.4 kB] 157s Get:18 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-phonenumbers all 8.12.57-4 [1399 kB] 159s Get:19 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pluggy all 1.5.0-1 [21.0 kB] 159s Get:20 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pytest all 8.3.2-1 [251 kB] 159s Get:21 http://ftpmaster.internal/ubuntu plucky/main s390x python3-greenlet s390x 3.0.3-0ubuntu6 [156 kB] 159s Get:22 http://ftpmaster.internal/ubuntu plucky/main s390x python3-sqlalchemy all 2.0.32+ds1-1ubuntu1 [1206 kB] 161s Get:23 http://ftpmaster.internal/ubuntu plucky/main s390x python3-sqlalchemy-utils all 0.41.1-0ubuntu1 [59.4 kB] 161s Get:24 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-sqlalchemy-i18n all 1.1.0-1build1 [26.7 kB] 161s Get:25 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-validators all 0.20.0-2 [15.2 kB] 161s Get:26 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x python3-wtforms all 3.2.1-1 [64.0 kB] 161s Get:27 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-wtforms-components all 0.10.5-5 [23.7 kB] 161s Get:28 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-wtforms-alchemy all 0.18.0-4 [64.0 kB] 161s Get:29 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-wtforms-test all 0.1.1-3 [13.6 kB] 161s Fetched 4362 kB in 5s (819 kB/s) 161s Selecting previously unselected package libjs-jquery. 161s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 55520 files and directories currently installed.) 161s Preparing to unpack .../00-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 161s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 161s Selecting previously unselected package libjs-underscore. 161s Preparing to unpack .../01-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 161s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 161s Selecting previously unselected package libjs-sphinxdoc. 161s Preparing to unpack .../02-libjs-sphinxdoc_7.4.7-3_all.deb ... 161s Unpacking libjs-sphinxdoc (7.4.7-3) ... 161s Selecting previously unselected package python3-all. 161s Preparing to unpack .../03-python3-all_3.12.6-0ubuntu1_s390x.deb ... 161s Unpacking python3-all (3.12.6-0ubuntu1) ... 161s Selecting previously unselected package python3-six. 161s Preparing to unpack .../04-python3-six_1.16.0-7_all.deb ... 161s Unpacking python3-six (1.16.0-7) ... 161s Selecting previously unselected package python3-dateutil. 161s Preparing to unpack .../05-python3-dateutil_2.9.0-2_all.deb ... 161s Unpacking python3-dateutil (2.9.0-2) ... 161s Selecting previously unselected package python3-arrow. 161s Preparing to unpack .../06-python3-arrow_1.3.0-1.1ubuntu1_all.deb ... 161s Unpacking python3-arrow (1.3.0-1.1ubuntu1) ... 161s Selecting previously unselected package python3-colour. 161s Preparing to unpack .../07-python3-colour_0.1.5-4_all.deb ... 161s Unpacking python3-colour (0.1.5-4) ... 161s Selecting previously unselected package python3-decorator. 161s Preparing to unpack .../08-python3-decorator_5.1.1-5_all.deb ... 161s Unpacking python3-decorator (5.1.1-5) ... 161s Selecting previously unselected package python3-dnspython. 161s Preparing to unpack .../09-python3-dnspython_2.6.1-1ubuntu1_all.deb ... 161s Unpacking python3-dnspython (2.6.1-1ubuntu1) ... 161s Selecting previously unselected package python3-email-validator. 161s Preparing to unpack .../10-python3-email-validator_2.2.0-1_all.deb ... 161s Unpacking python3-email-validator (2.2.0-1) ... 161s Selecting previously unselected package python3-flexmock. 161s Preparing to unpack .../11-python3-flexmock_0.12.1-1_all.deb ... 161s Unpacking python3-flexmock (0.12.1-1) ... 161s Selecting previously unselected package python3-infinity. 161s Preparing to unpack .../12-python3-infinity_1.5-3_all.deb ... 161s Unpacking python3-infinity (1.5-3) ... 161s Selecting previously unselected package python3-iniconfig. 161s Preparing to unpack .../13-python3-iniconfig_1.1.1-2_all.deb ... 161s Unpacking python3-iniconfig (1.1.1-2) ... 161s Selecting previously unselected package python3-intervals. 161s Preparing to unpack .../14-python3-intervals_0.9.2-2_all.deb ... 161s Unpacking python3-intervals (0.9.2-2) ... 161s Selecting previously unselected package python3-packaging. 161s Preparing to unpack .../15-python3-packaging_24.1-1_all.deb ... 161s Unpacking python3-packaging (24.1-1) ... 161s Selecting previously unselected package python3-phonenumbers. 161s Preparing to unpack .../16-python3-phonenumbers_8.12.57-4_all.deb ... 161s Unpacking python3-phonenumbers (8.12.57-4) ... 162s Selecting previously unselected package python3-pluggy. 162s Preparing to unpack .../17-python3-pluggy_1.5.0-1_all.deb ... 162s Unpacking python3-pluggy (1.5.0-1) ... 162s Selecting previously unselected package python3-pytest. 162s Preparing to unpack .../18-python3-pytest_8.3.2-1_all.deb ... 162s Unpacking python3-pytest (8.3.2-1) ... 162s Selecting previously unselected package python3-greenlet. 162s Preparing to unpack .../19-python3-greenlet_3.0.3-0ubuntu6_s390x.deb ... 162s Unpacking python3-greenlet (3.0.3-0ubuntu6) ... 162s Selecting previously unselected package python3-sqlalchemy. 162s Preparing to unpack .../20-python3-sqlalchemy_2.0.32+ds1-1ubuntu1_all.deb ... 162s Unpacking python3-sqlalchemy (2.0.32+ds1-1ubuntu1) ... 162s Selecting previously unselected package python3-sqlalchemy-utils. 162s Preparing to unpack .../21-python3-sqlalchemy-utils_0.41.1-0ubuntu1_all.deb ... 162s Unpacking python3-sqlalchemy-utils (0.41.1-0ubuntu1) ... 162s Selecting previously unselected package python3-sqlalchemy-i18n. 162s Preparing to unpack .../22-python3-sqlalchemy-i18n_1.1.0-1build1_all.deb ... 162s Unpacking python3-sqlalchemy-i18n (1.1.0-1build1) ... 162s Selecting previously unselected package python3-validators. 162s Preparing to unpack .../23-python3-validators_0.20.0-2_all.deb ... 162s Unpacking python3-validators (0.20.0-2) ... 162s Selecting previously unselected package python3-wtforms. 162s Preparing to unpack .../24-python3-wtforms_3.2.1-1_all.deb ... 162s Unpacking python3-wtforms (3.2.1-1) ... 162s Selecting previously unselected package python3-wtforms-components. 162s Preparing to unpack .../25-python3-wtforms-components_0.10.5-5_all.deb ... 162s Unpacking python3-wtforms-components (0.10.5-5) ... 162s Selecting previously unselected package python3-wtforms-alchemy. 162s Preparing to unpack .../26-python3-wtforms-alchemy_0.18.0-4_all.deb ... 162s Unpacking python3-wtforms-alchemy (0.18.0-4) ... 162s Selecting previously unselected package python3-wtforms-test. 162s Preparing to unpack .../27-python3-wtforms-test_0.1.1-3_all.deb ... 162s Unpacking python3-wtforms-test (0.1.1-3) ... 162s Selecting previously unselected package autopkgtest-satdep. 162s Preparing to unpack .../28-1-autopkgtest-satdep.deb ... 162s Unpacking autopkgtest-satdep (0) ... 162s Setting up python3-iniconfig (1.1.1-2) ... 162s Setting up python3-wtforms (3.2.1-1) ... 162s Setting up python3-all (3.12.6-0ubuntu1) ... 162s Setting up python3-six (1.16.0-7) ... 162s Setting up python3-decorator (5.1.1-5) ... 162s Setting up python3-packaging (24.1-1) ... 162s Setting up python3-phonenumbers (8.12.57-4) ... 168s Setting up python3-greenlet (3.0.3-0ubuntu6) ... 168s Setting up python3-colour (0.1.5-4) ... 168s Setting up python3-pluggy (1.5.0-1) ... 168s Setting up python3-infinity (1.5-3) ... 168s Setting up python3-dnspython (2.6.1-1ubuntu1) ... 168s Setting up python3-dateutil (2.9.0-2) ... 168s Setting up python3-email-validator (2.2.0-1) ... 169s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 169s Setting up python3-flexmock (0.12.1-1) ... 169s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 169s Setting up python3-intervals (0.9.2-2) ... 169s Setting up python3-validators (0.20.0-2) ... 169s Setting up python3-arrow (1.3.0-1.1ubuntu1) ... 169s Setting up python3-pytest (8.3.2-1) ... 169s Setting up python3-sqlalchemy (2.0.32+ds1-1ubuntu1) ... 171s Setting up libjs-sphinxdoc (7.4.7-3) ... 171s Setting up python3-sqlalchemy-utils (0.41.1-0ubuntu1) ... 171s Setting up python3-sqlalchemy-i18n (1.1.0-1build1) ... 171s Setting up python3-wtforms-components (0.10.5-5) ... 171s Setting up python3-wtforms-test (0.1.1-3) ... 171s Setting up python3-wtforms-alchemy (0.18.0-4) ... 171s Setting up autopkgtest-satdep (0) ... 171s Processing triggers for man-db (2.12.1-3) ... 174s (Reading database ... 57557 files and directories currently installed.) 174s Removing autopkgtest-satdep (0) ... 174s autopkgtest [15:09:39]: test upstream: [----------------------- 174s -=-=-=-=-=-=-=- running tests for python3.12 -=-=-=-=-=-=-=-=- 174s $ python3.12 -m pytest tests 175s ============================= test session starts ============================== 175s platform linux -- Python 3.12.7+, pytest-8.3.2, pluggy-1.5.0 175s rootdir: /tmp/autopkgtest.xtjucd/autopkgtest_tmp 175s plugins: typeguard-4.4.1, flexmock-0.12.1 175s collected 248 items 175s 175s tests/test_class_map.py ................. [ 6%] 175s tests/test_column_aliases.py ..... [ 8%] 175s tests/test_configuration.py .................. [ 16%] 175s tests/test_country_field.py .. [ 16%] 175s tests/test_custom_fields.py . [ 17%] 175s tests/test_deep_form_relations.py .. [ 18%] 175s tests/test_descriptions.py .. [ 18%] 175s tests/test_field_exclusion.py .... [ 20%] 175s tests/test_field_order.py . [ 20%] 175s tests/test_field_parameters.py ...........F. [ 26%] 175s tests/test_field_trimming.py .. [ 27%] 175s tests/test_form_meta.py ........ [ 30%] 175s tests/test_hybrid_properties.py .. [ 31%] 176s tests/test_i18n_extension.py xxx [ 32%] 176s tests/test_inheritance.py ..... [ 34%] 176s tests/test_labels.py .. [ 35%] 176s tests/test_model_field_list.py ........ [ 38%] 176s tests/test_model_form_factory.py ............ [ 43%] 176s tests/test_model_form_field.py ... [ 44%] 176s tests/test_phone_number.py .... [ 45%] 176s tests/test_phone_number_field.py ..F.FFFF.... [ 50%] 176s tests/test_query_select_field.py .......FF...F [ 56%] 176s tests/test_select_field.py F......... [ 60%] 176s tests/test_synonym.py .. [ 60%] 177s tests/test_types.py ...............................x.......F.FF... [ 79%] 177s tests/test_unique_validator.py ....................... [ 88%] 177s tests/test_utils.py x [ 89%] 177s tests/test_validators.py ................... [ 96%] 177s tests/test_weekdays_field.py .. [ 97%] 177s tests/test_widgets.py FFFFFF [100%] 177s 177s =================================== FAILURES =================================== 177s _______________ TestFieldParameters.test_uses_custom_field_class _______________ 177s 177s self = 177s 177s def test_uses_custom_field_class(self): 177s class InputTest(widgets.Input): 177s input_type = 'color' 177s 177s class FieldTest(StringField): 177s widget = InputTest() 177s 177s class ModelTest(self.base): 177s __tablename__ = 'model_test' 177s query = None 177s id = sa.Column(sa.Integer, primary_key=True) 177s test_column = sa.Column( 177s sa.UnicodeText, 177s info={'form_field_class': FieldTest} 177s ) 177s 177s class ModelTestForm(ModelForm): 177s class Meta: 177s model = ModelTest 177s 177s form = ModelTestForm() 177s > assert 'type="color"' in str(form.test_column) 177s 177s tests/test_field_parameters.py:102: 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:141: in __str__ 177s return self() 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 177s return self.meta.render_field(self, kwargs) 177s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 177s return field.widget(field, **render_kw) 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s 177s self = .InputTest object at 0x3ffadb5a540> 177s field = .FieldTest object at 0x3ffadb5ade0> 177s kwargs = {'id': 'test_column', 'type': 'color', 'value': ''} 177s flags = , k = '__class__' 177s 177s def __call__(self, field, **kwargs): 177s kwargs.setdefault("id", field.id) 177s kwargs.setdefault("type", self.input_type) 177s if "value" not in kwargs: 177s kwargs["value"] = field._value() 177s flags = getattr(field, "flags", {}) 177s for k in dir(flags): 177s > if k in self.validation_attrs and k not in kwargs: 177s E AttributeError: 'InputTest' object has no attribute 'validation_attrs' 177s 177s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:176: AttributeError 177s __________ TestPhoneNumberField.test_render_empty_phone_number_value ___________ 177s 177s self = 177s 177s def test_render_empty_phone_number_value(self): 177s form_class = self.init_form(region='FI') 177s form = form_class(MultiDict(phone_number='')) 177s > assert 'value=""' in form.phone_number() 177s 177s tests/test_phone_number_field.py:48: 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 177s return self.meta.render_field(self, kwargs) 177s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 177s return field.widget(field, **render_kw) 177s /usr/lib/python3/dist-packages/wtforms_components/widgets.py:81: in __call__ 177s return super(HTML5Input, self).__call__(field, **options_copy) 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s 177s self = 177s field = 177s kwargs = {'id': 'phone_number', 'type': 'tel', 'value': ''} 177s flags = , k = '__class__' 177s 177s def __call__(self, field, **kwargs): 177s kwargs.setdefault("id", field.id) 177s kwargs.setdefault("type", self.input_type) 177s if "value" not in kwargs: 177s kwargs["value"] = field._value() 177s flags = getattr(field, "flags", {}) 177s for k in dir(flags): 177s > if k in self.validation_attrs and k not in kwargs: 177s E AttributeError: 'TelInput' object has no attribute 'validation_attrs' 177s 177s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:176: AttributeError 177s _______________ TestPhoneNumberField.test_default_display_format _______________ 177s 177s self = 177s 177s def test_default_display_format(self): 177s form_class = self.init_form(region='FI') 177s form = form_class(MultiDict(phone_number='+358401234567')) 177s > assert 'value="040 1234567"' in form.phone_number() 177s 177s tests/test_phone_number_field.py:60: 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 177s return self.meta.render_field(self, kwargs) 177s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 177s return field.widget(field, **render_kw) 177s /usr/lib/python3/dist-packages/wtforms_components/widgets.py:81: in __call__ 177s return super(HTML5Input, self).__call__(field, **options_copy) 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s 177s self = 177s field = 177s kwargs = {'id': 'phone_number', 'type': 'tel', 'value': '040 1234567'} 177s flags = , k = '__class__' 177s 177s def __call__(self, field, **kwargs): 177s kwargs.setdefault("id", field.id) 177s kwargs.setdefault("type", self.input_type) 177s if "value" not in kwargs: 177s kwargs["value"] = field._value() 177s flags = getattr(field, "flags", {}) 177s for k in dir(flags): 177s > if k in self.validation_attrs and k not in kwargs: 177s E AttributeError: 'TelInput' object has no attribute 'validation_attrs' 177s 177s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:176: AttributeError 177s ____________ TestPhoneNumberField.test_international_display_format ____________ 177s 177s self = 177s 177s def test_international_display_format(self): 177s form_class = self.init_form( 177s region='FI', 177s display_format='international' 177s ) 177s form = form_class(MultiDict(phone_number='0401234567')) 177s > assert 'value="+358 40 1234567"' in form.phone_number() 177s 177s tests/test_phone_number_field.py:68: 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 177s return self.meta.render_field(self, kwargs) 177s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 177s return field.widget(field, **render_kw) 177s /usr/lib/python3/dist-packages/wtforms_components/widgets.py:81: in __call__ 177s return super(HTML5Input, self).__call__(field, **options_copy) 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s 177s self = 177s field = 177s kwargs = {'id': 'phone_number', 'type': 'tel', 'value': '+358 40 1234567'} 177s flags = , k = '__class__' 177s 177s def __call__(self, field, **kwargs): 177s kwargs.setdefault("id", field.id) 177s kwargs.setdefault("type", self.input_type) 177s if "value" not in kwargs: 177s kwargs["value"] = field._value() 177s flags = getattr(field, "flags", {}) 177s for k in dir(flags): 177s > if k in self.validation_attrs and k not in kwargs: 177s E AttributeError: 'TelInput' object has no attribute 'validation_attrs' 177s 177s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:176: AttributeError 177s ________________ TestPhoneNumberField.test_e164_display_format _________________ 177s 177s self = 177s 177s def test_e164_display_format(self): 177s form_class = self.init_form( 177s region='FI', 177s display_format='e164' 177s ) 177s form = form_class(MultiDict(phone_number='0401234567')) 177s > assert 'value="+358401234567"' in form.phone_number() 177s 177s tests/test_phone_number_field.py:76: 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 177s return self.meta.render_field(self, kwargs) 177s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 177s return field.widget(field, **render_kw) 177s /usr/lib/python3/dist-packages/wtforms_components/widgets.py:81: in __call__ 177s return super(HTML5Input, self).__call__(field, **options_copy) 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s 177s self = 177s field = 177s kwargs = {'id': 'phone_number', 'type': 'tel', 'value': '+358401234567'} 177s flags = , k = '__class__' 177s 177s def __call__(self, field, **kwargs): 177s kwargs.setdefault("id", field.id) 177s kwargs.setdefault("type", self.input_type) 177s if "value" not in kwargs: 177s kwargs["value"] = field._value() 177s flags = getattr(field, "flags", {}) 177s for k in dir(flags): 177s > if k in self.validation_attrs and k not in kwargs: 177s E AttributeError: 'TelInput' object has no attribute 'validation_attrs' 177s 177s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:176: AttributeError 177s _____ TestPhoneNumberField.test_field_rendering_when_invalid_phone_number ______ 177s 177s self = 177s 177s def test_field_rendering_when_invalid_phone_number(self): 177s form_class = self.init_form() 177s form = form_class(MultiDict(phone_number='invalid')) 177s form.validate() 177s > assert 'value="invalid"' in form.phone_number() 177s 177s tests/test_phone_number_field.py:82: 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 177s return self.meta.render_field(self, kwargs) 177s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 177s return field.widget(field, **render_kw) 177s /usr/lib/python3/dist-packages/wtforms_components/widgets.py:81: in __call__ 177s return super(HTML5Input, self).__call__(field, **options_copy) 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s 177s self = 177s field = 177s kwargs = {'id': 'phone_number', 'type': 'tel', 'value': 'invalid'} 177s flags = , k = '__class__' 177s 177s def __call__(self, field, **kwargs): 177s kwargs.setdefault("id", field.id) 177s kwargs.setdefault("type", self.input_type) 177s if "value" not in kwargs: 177s kwargs["value"] = field._value() 177s flags = getattr(field, "flags", {}) 177s for k in dir(flags): 177s > if k in self.validation_attrs and k not in kwargs: 177s E AttributeError: 'TelInput' object has no attribute 'validation_attrs' 177s 177s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:176: AttributeError 177s ______________ TestGroupedQuerySelectField.test_custom_none_value ______________ 177s 177s self = 177s 177s def test_custom_none_value(self): 177s self.create_cities() 177s MyForm = self.create_form( 177s allow_blank=True, 177s blank_text='Choose city...', 177s blank_value='' 177s ) 177s form = MyForm(DummyPostData({'city': ''})) 177s assert form.validate(), form.errors 177s > assert '' in ( 177s str(form.city) 177s ) 177s 177s tests/test_query_select_field.py:311: 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:141: in __str__ 177s return self() 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 177s return self.meta.render_field(self, kwargs) 177s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 177s return field.widget(field, **render_kw) 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s 177s self = 177s field = 177s kwargs = {'id': 'city'}, flags = , k = '__weakref__' 177s select_params = 'id="city" name="city"' 177s html = ['"] 177s if field.has_groups(): 177s for group, choices in field.iter_groups(): 177s optgroup_params = html_params(label=group) 177s html.append(f"") 177s for choice in choices: 177s val, label, selected, render_kw = choice 177s html.append(self.render_option(val, label, selected, **render_kw)) 177s html.append("") 177s else: 177s for choice in field.iter_choices(): 177s > val, label, selected, render_kw = choice 177s E ValueError: not enough values to unpack (expected 4, got 3) 177s 177s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:374: ValueError 177s __________________ TestGroupedQuerySelectField.test_rendering __________________ 177s 177s self = 177s 177s def test_rendering(self): 177s MyForm = self.create_form() 177s self.create_cities() 177s > assert str(MyForm().city).replace('\n', '') == ( 177s '' 177s ) 177s 177s tests/test_query_select_field.py:318: 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:141: in __str__ 177s return self() 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 177s return self.meta.render_field(self, kwargs) 177s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 177s return field.widget(field, **render_kw) 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s 177s self = 177s field = 177s kwargs = {'id': 'city'}, flags = , k = '__weakref__' 177s select_params = 'id="city" name="city"' 177s html = ['"] 177s if field.has_groups(): 177s for group, choices in field.iter_groups(): 177s optgroup_params = html_params(label=group) 177s html.append(f"") 177s for choice in choices: 177s val, label, selected, render_kw = choice 177s html.append(self.render_option(val, label, selected, **render_kw)) 177s html.append("") 177s else: 177s for choice in field.iter_choices(): 177s > val, label, selected, render_kw = choice 177s E ValueError: not enough values to unpack (expected 4, got 3) 177s 177s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:374: ValueError 177s ______________ TestGroupedQuerySelectMultipleField.test_rendering ______________ 177s 177s self = 177s 177s def test_rendering(self): 177s MyForm = self.create_form() 177s self.create_cities() 177s > assert str(MyForm().cities).replace('\n', '') == ( 177s '' 177s ) 177s 177s tests/test_query_select_field.py:398: 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:141: in __str__ 177s return self() 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 177s return self.meta.render_field(self, kwargs) 177s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 177s return field.widget(field, **render_kw) 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s 177s self = 177s field = 177s kwargs = {'id': 'cities', 'multiple': True}, flags = 177s k = '__weakref__', select_params = 'id="cities" multiple name="cities"' 177s html = ['"] 177s if field.has_groups(): 177s for group, choices in field.iter_groups(): 177s optgroup_params = html_params(label=group) 177s html.append(f"") 177s for choice in choices: 177s val, label, selected, render_kw = choice 177s html.append(self.render_option(val, label, selected, **render_kw)) 177s html.append("") 177s else: 177s for choice in field.iter_choices(): 177s > val, label, selected, render_kw = choice 177s E ValueError: not enough values to unpack (expected 4, got 3) 177s 177s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:374: ValueError 177s ___ TestSelectFieldDefaultValue.test_option_selected_by_field_default_value ____ 177s 177s self = 177s 177s def test_option_selected_by_field_default_value(self): 177s choices = [(u'1', '1'), (u'2', '2')] 177s self.init( 177s type_=sa.Integer, 177s default=u'1', 177s info={'choices': choices} 177s ) 177s form = self.form_class(MultiDict({'test_column': '2'})) 177s > assert ( 177s '' in 177s str(form.test_column) 177s ) 177s 177s tests/test_select_field.py:24: 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:141: in __str__ 177s return self() 177s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 177s return self.meta.render_field(self, kwargs) 177s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 177s return field.widget(field, **render_kw) 177s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 177s 177s self = 177s field = 177s kwargs = {'id': 'test_column'}, flags = 177s k = 'optional', select_params = 'id="test_column" name="test_column"' 177s html = ['"] 177s if field.has_groups(): 177s for group, choices in field.iter_groups(): 177s optgroup_params = html_params(label=group) 177s html.append(f"") 177s for choice in choices: 177s val, label, selected, render_kw = choice 177s html.append(self.render_option(val, label, selected, **render_kw)) 177s html.append("") 177s else: 177s for choice in field.iter_choices(): 177s > val, label, selected, render_kw = choice 177s E ValueError: not enough values to unpack (expected 4, got 3) 177s 177s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:374: ValueError 177s _ TestModelColumnToFormFieldTypeConversion.test_choice_type_uses_custom_coerce_func _ 177s 177s self = 177s 177s def test_choice_type_uses_custom_coerce_func(self): 177s choices = [('1', 'choice 1'), ('2', 'choice 2')] 177s self.init(type_=ChoiceType(choices)) 177s self.assert_type('test_column', SelectField) 177s model = self.ModelTest(test_column=u'2') 177s form = self.form_class(obj=model) 177s > assert '