0s autopkgtest [15:57:55]: starting date and time: 2024-11-12 15:57:55+0000 0s autopkgtest [15:57:55]: git checkout: 6f3be7a8 Fix armhf LXD image generation for plucky 0s autopkgtest [15:57:55]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.1xz1048p/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 builder-cpu2-ram4-disk20 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@bos03-13.secgroup --name adt-plucky-amd64-wtforms-alchemy-20241112-155755-juju-7f2275-prod-proposed-migration-environment-20-973e51a9-309a-426a-8169-f9cfd6b88f24 --image adt/ubuntu-plucky-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-proposed-migration-amd64 -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/ 45s autopkgtest [15:58:40]: testbed dpkg architecture: amd64 45s autopkgtest [15:58:40]: testbed apt version: 2.9.8 45s autopkgtest [15:58:40]: @@@@@@@@@@@@@@@@@@@@ test bed setup 46s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 46s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [7016 B] 46s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [861 kB] 46s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [86.7 kB] 46s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [15.3 kB] 46s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main amd64 Packages [124 kB] 46s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/main i386 Packages [73.8 kB] 46s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/restricted amd64 Packages [32.6 kB] 46s Get:9 http://ftpmaster.internal/ubuntu plucky-proposed/universe i386 Packages [270 kB] 46s Get:10 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 Packages [655 kB] 46s Get:11 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse i386 Packages [13.0 kB] 46s Get:12 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse amd64 Packages [37.7 kB] 46s Fetched 2251 kB in 1s (2767 kB/s) 46s Reading package lists... 49s Reading package lists... 49s Building dependency tree... 49s Reading state information... 49s Calculating upgrade... 49s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 49s Reading package lists... 49s Building dependency tree... 49s Reading state information... 49s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 50s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 50s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 50s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 50s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 51s Reading package lists... 51s Reading package lists... 51s Building dependency tree... 51s Reading state information... 51s Calculating upgrade... 51s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 51s Reading package lists... 51s Building dependency tree... 51s Reading state information... 52s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 54s autopkgtest [15:58:49]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 16 13:41:20 UTC 2024 54s autopkgtest [15:58:49]: @@@@@@@@@@@@@@@@@@@@ apt-source wtforms-alchemy 56s Get:1 http://ftpmaster.internal/ubuntu plucky/universe wtforms-alchemy 0.18.0-4 (dsc) [2858 B] 56s Get:2 http://ftpmaster.internal/ubuntu plucky/universe wtforms-alchemy 0.18.0-4 (tar) [50.2 kB] 56s Get:3 http://ftpmaster.internal/ubuntu plucky/universe wtforms-alchemy 0.18.0-4 (diff) [8688 B] 56s gpgv: Signature made Tue Apr 30 08:17:31 2024 UTC 56s gpgv: using RSA key B70DFC6F134FECFC011E62AA83016014251D1DB0 56s gpgv: issuer "c.schoenert@t-online.de" 56s gpgv: Can't check signature: No public key 56s dpkg-source: warning: cannot verify inline signature for ./wtforms-alchemy_0.18.0-4.dsc: no acceptable signature found 56s autopkgtest [15:58:51]: testing package wtforms-alchemy version 0.18.0-4 56s autopkgtest [15:58:51]: build not needed 57s autopkgtest [15:58:52]: test upstream: preparing testbed 58s Reading package lists... 58s Building dependency tree... 58s Reading state information... 59s Starting pkgProblemResolver with broken count: 0 59s Starting 2 pkgProblemResolver with broken count: 0 59s Done 59s The following additional packages will be installed: 59s libjs-jquery libjs-sphinxdoc libjs-underscore python3-all python3-arrow 59s python3-colour python3-dateutil python3-decorator python3-dnspython 59s python3-email-validator python3-flexmock python3-greenlet python3-infinity 59s python3-iniconfig python3-intervals python3-packaging python3-phonenumbers 59s python3-pluggy python3-pytest python3-six python3-sqlalchemy 59s python3-sqlalchemy-i18n python3-sqlalchemy-utils python3-validators 59s python3-wtforms python3-wtforms-alchemy python3-wtforms-components 59s python3-wtforms-test 59s Suggested packages: 59s python-arrow-doc python3-trio python3-aioquic python3-h2 python3-httpx 59s python3-httpcore python-greenlet-dev python-greenlet-doc 59s python-sqlalchemy-doc python3-asyncpg python3-pg8000 python3-psycopg2 59s python3-psycopg2cffi python3-aiosqlite python3-mariadb-connector 59s python3-mysqldb python3-mysql.connector python3-pyodbc python3-pymssql 59s python3-cx-oracle python3-oracledb python-sqlalchemy-utils-doc 59s python3-django python3-django-localflavor 59s Recommended packages: 59s javascript-common python3-sqlalchemy-ext 59s The following NEW packages will be installed: 59s autopkgtest-satdep libjs-jquery libjs-sphinxdoc libjs-underscore python3-all 59s python3-arrow python3-colour python3-dateutil python3-decorator 59s python3-dnspython python3-email-validator python3-flexmock python3-greenlet 59s python3-infinity python3-iniconfig python3-intervals python3-packaging 59s python3-phonenumbers python3-pluggy python3-pytest python3-six 59s python3-sqlalchemy python3-sqlalchemy-i18n python3-sqlalchemy-utils 59s python3-validators python3-wtforms python3-wtforms-alchemy 59s python3-wtforms-components python3-wtforms-test 59s 0 upgraded, 29 newly installed, 0 to remove and 0 not upgraded. 59s Need to get 4361 kB/4361 kB of archives. 59s After this operation, 38.0 MB of additional disk space will be used. 59s Get:1 /tmp/autopkgtest.tXbAE3/1-autopkgtest-satdep.deb autopkgtest-satdep amd64 0 [776 B] 59s Get:2 http://ftpmaster.internal/ubuntu plucky/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 59s Get:3 http://ftpmaster.internal/ubuntu plucky/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 59s Get:4 http://ftpmaster.internal/ubuntu plucky/main amd64 libjs-sphinxdoc all 7.4.7-4 [158 kB] 59s Get:5 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-all amd64 3.12.6-0ubuntu1 [886 B] 59s Get:6 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-six all 1.16.0-7 [13.1 kB] 59s Get:7 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-dateutil all 2.9.0-2 [80.3 kB] 60s Get:8 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-arrow all 1.3.0-1.1ubuntu1 [56.1 kB] 60s Get:9 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-colour all 0.1.5-4 [22.8 kB] 60s Get:10 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-decorator all 5.1.1-5 [10.1 kB] 60s Get:11 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-dnspython all 2.6.1-1ubuntu1 [163 kB] 60s Get:12 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-email-validator all 2.2.0-1 [28.5 kB] 60s Get:13 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-flexmock all 0.12.1-1 [20.6 kB] 60s Get:14 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-infinity all 1.5-3 [3988 B] 60s Get:15 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-iniconfig all 1.1.1-2 [6024 B] 60s Get:16 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-intervals all 0.9.2-2 [11.6 kB] 60s Get:17 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-packaging all 24.1-1 [41.4 kB] 60s Get:18 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-phonenumbers all 8.12.57-4 [1399 kB] 60s Get:19 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pluggy all 1.5.0-1 [21.0 kB] 60s Get:20 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-pytest all 8.3.3-1 [251 kB] 60s Get:21 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-greenlet amd64 3.0.3-0ubuntu6 [155 kB] 60s Get:22 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-sqlalchemy all 2.0.32+ds1-1ubuntu1 [1206 kB] 60s Get:23 http://ftpmaster.internal/ubuntu plucky/main amd64 python3-sqlalchemy-utils all 0.41.1-0ubuntu1 [59.4 kB] 60s Get:24 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-sqlalchemy-i18n all 1.1.0-1build1 [26.7 kB] 60s Get:25 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-validators all 0.20.0-2 [15.2 kB] 60s Get:26 http://ftpmaster.internal/ubuntu plucky-proposed/universe amd64 python3-wtforms all 3.2.1-1 [64.0 kB] 60s Get:27 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-wtforms-components all 0.10.5-5 [23.7 kB] 60s Get:28 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-wtforms-alchemy all 0.18.0-4 [64.0 kB] 60s Get:29 http://ftpmaster.internal/ubuntu plucky/universe amd64 python3-wtforms-test all 0.1.1-3 [13.6 kB] 60s Fetched 4361 kB in 1s (4767 kB/s) 60s Selecting previously unselected package libjs-jquery. 60s (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 ... 75553 files and directories currently installed.) 60s Preparing to unpack .../00-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 60s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 60s Selecting previously unselected package libjs-underscore. 60s Preparing to unpack .../01-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 60s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 60s Selecting previously unselected package libjs-sphinxdoc. 60s Preparing to unpack .../02-libjs-sphinxdoc_7.4.7-4_all.deb ... 60s Unpacking libjs-sphinxdoc (7.4.7-4) ... 60s Selecting previously unselected package python3-all. 60s Preparing to unpack .../03-python3-all_3.12.6-0ubuntu1_amd64.deb ... 60s Unpacking python3-all (3.12.6-0ubuntu1) ... 60s Selecting previously unselected package python3-six. 60s Preparing to unpack .../04-python3-six_1.16.0-7_all.deb ... 60s Unpacking python3-six (1.16.0-7) ... 60s Selecting previously unselected package python3-dateutil. 60s Preparing to unpack .../05-python3-dateutil_2.9.0-2_all.deb ... 60s Unpacking python3-dateutil (2.9.0-2) ... 60s Selecting previously unselected package python3-arrow. 60s Preparing to unpack .../06-python3-arrow_1.3.0-1.1ubuntu1_all.deb ... 60s Unpacking python3-arrow (1.3.0-1.1ubuntu1) ... 60s Selecting previously unselected package python3-colour. 60s Preparing to unpack .../07-python3-colour_0.1.5-4_all.deb ... 60s Unpacking python3-colour (0.1.5-4) ... 60s Selecting previously unselected package python3-decorator. 61s Preparing to unpack .../08-python3-decorator_5.1.1-5_all.deb ... 61s Unpacking python3-decorator (5.1.1-5) ... 61s Selecting previously unselected package python3-dnspython. 61s Preparing to unpack .../09-python3-dnspython_2.6.1-1ubuntu1_all.deb ... 61s Unpacking python3-dnspython (2.6.1-1ubuntu1) ... 61s Selecting previously unselected package python3-email-validator. 61s Preparing to unpack .../10-python3-email-validator_2.2.0-1_all.deb ... 61s Unpacking python3-email-validator (2.2.0-1) ... 61s Selecting previously unselected package python3-flexmock. 61s Preparing to unpack .../11-python3-flexmock_0.12.1-1_all.deb ... 61s Unpacking python3-flexmock (0.12.1-1) ... 61s Selecting previously unselected package python3-infinity. 61s Preparing to unpack .../12-python3-infinity_1.5-3_all.deb ... 61s Unpacking python3-infinity (1.5-3) ... 61s Selecting previously unselected package python3-iniconfig. 61s Preparing to unpack .../13-python3-iniconfig_1.1.1-2_all.deb ... 61s Unpacking python3-iniconfig (1.1.1-2) ... 61s Selecting previously unselected package python3-intervals. 61s Preparing to unpack .../14-python3-intervals_0.9.2-2_all.deb ... 61s Unpacking python3-intervals (0.9.2-2) ... 61s Selecting previously unselected package python3-packaging. 61s Preparing to unpack .../15-python3-packaging_24.1-1_all.deb ... 61s Unpacking python3-packaging (24.1-1) ... 61s Selecting previously unselected package python3-phonenumbers. 61s Preparing to unpack .../16-python3-phonenumbers_8.12.57-4_all.deb ... 61s Unpacking python3-phonenumbers (8.12.57-4) ... 61s Selecting previously unselected package python3-pluggy. 61s Preparing to unpack .../17-python3-pluggy_1.5.0-1_all.deb ... 61s Unpacking python3-pluggy (1.5.0-1) ... 61s Selecting previously unselected package python3-pytest. 61s Preparing to unpack .../18-python3-pytest_8.3.3-1_all.deb ... 61s Unpacking python3-pytest (8.3.3-1) ... 61s Selecting previously unselected package python3-greenlet. 61s Preparing to unpack .../19-python3-greenlet_3.0.3-0ubuntu6_amd64.deb ... 61s Unpacking python3-greenlet (3.0.3-0ubuntu6) ... 61s Selecting previously unselected package python3-sqlalchemy. 61s Preparing to unpack .../20-python3-sqlalchemy_2.0.32+ds1-1ubuntu1_all.deb ... 61s Unpacking python3-sqlalchemy (2.0.32+ds1-1ubuntu1) ... 61s Selecting previously unselected package python3-sqlalchemy-utils. 61s Preparing to unpack .../21-python3-sqlalchemy-utils_0.41.1-0ubuntu1_all.deb ... 61s Unpacking python3-sqlalchemy-utils (0.41.1-0ubuntu1) ... 61s Selecting previously unselected package python3-sqlalchemy-i18n. 61s Preparing to unpack .../22-python3-sqlalchemy-i18n_1.1.0-1build1_all.deb ... 61s Unpacking python3-sqlalchemy-i18n (1.1.0-1build1) ... 61s Selecting previously unselected package python3-validators. 61s Preparing to unpack .../23-python3-validators_0.20.0-2_all.deb ... 61s Unpacking python3-validators (0.20.0-2) ... 61s Selecting previously unselected package python3-wtforms. 61s Preparing to unpack .../24-python3-wtforms_3.2.1-1_all.deb ... 61s Unpacking python3-wtforms (3.2.1-1) ... 61s Selecting previously unselected package python3-wtforms-components. 61s Preparing to unpack .../25-python3-wtforms-components_0.10.5-5_all.deb ... 61s Unpacking python3-wtforms-components (0.10.5-5) ... 61s Selecting previously unselected package python3-wtforms-alchemy. 61s Preparing to unpack .../26-python3-wtforms-alchemy_0.18.0-4_all.deb ... 61s Unpacking python3-wtforms-alchemy (0.18.0-4) ... 61s Selecting previously unselected package python3-wtforms-test. 61s Preparing to unpack .../27-python3-wtforms-test_0.1.1-3_all.deb ... 61s Unpacking python3-wtforms-test (0.1.1-3) ... 61s Selecting previously unselected package autopkgtest-satdep. 61s Preparing to unpack .../28-1-autopkgtest-satdep.deb ... 61s Unpacking autopkgtest-satdep (0) ... 61s Setting up python3-iniconfig (1.1.1-2) ... 61s Setting up python3-wtforms (3.2.1-1) ... 61s Setting up python3-all (3.12.6-0ubuntu1) ... 61s Setting up python3-six (1.16.0-7) ... 62s Setting up python3-decorator (5.1.1-5) ... 62s Setting up python3-packaging (24.1-1) ... 62s Setting up python3-phonenumbers (8.12.57-4) ... 66s Setting up python3-greenlet (3.0.3-0ubuntu6) ... 66s Setting up python3-colour (0.1.5-4) ... 66s Setting up python3-pluggy (1.5.0-1) ... 66s Setting up python3-infinity (1.5-3) ... 66s Setting up python3-dnspython (2.6.1-1ubuntu1) ... 66s Setting up python3-dateutil (2.9.0-2) ... 66s Setting up python3-email-validator (2.2.0-1) ... 66s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 66s Setting up python3-flexmock (0.12.1-1) ... 67s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 67s Setting up python3-intervals (0.9.2-2) ... 67s Setting up python3-validators (0.20.0-2) ... 67s Setting up python3-arrow (1.3.0-1.1ubuntu1) ... 67s Setting up python3-pytest (8.3.3-1) ... 67s Setting up python3-sqlalchemy (2.0.32+ds1-1ubuntu1) ... 68s Setting up libjs-sphinxdoc (7.4.7-4) ... 68s Setting up python3-sqlalchemy-utils (0.41.1-0ubuntu1) ... 68s Setting up python3-sqlalchemy-i18n (1.1.0-1build1) ... 68s Setting up python3-wtforms-components (0.10.5-5) ... 68s Setting up python3-wtforms-test (0.1.1-3) ... 69s Setting up python3-wtforms-alchemy (0.18.0-4) ... 69s Setting up autopkgtest-satdep (0) ... 69s Processing triggers for man-db (2.12.1-3) ... 72s (Reading database ... 77590 files and directories currently installed.) 72s Removing autopkgtest-satdep (0) ... 72s autopkgtest [15:59:07]: test upstream: [----------------------- 72s -=-=-=-=-=-=-=- running tests for python3.12 -=-=-=-=-=-=-=-=- 72s $ python3.12 -m pytest tests 73s ============================= test session starts ============================== 73s platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 73s rootdir: /tmp/autopkgtest.tXbAE3/autopkgtest_tmp 73s plugins: typeguard-4.4.1, flexmock-0.12.1 73s collected 248 items 73s 73s tests/test_class_map.py ................. [ 6%] 73s tests/test_column_aliases.py ..... [ 8%] 73s tests/test_configuration.py .................. [ 16%] 73s tests/test_country_field.py .. [ 16%] 73s tests/test_custom_fields.py . [ 17%] 73s tests/test_deep_form_relations.py .. [ 18%] 73s tests/test_descriptions.py .. [ 18%] 73s tests/test_field_exclusion.py .... [ 20%] 73s tests/test_field_order.py . [ 20%] 74s tests/test_field_parameters.py ...........F. [ 26%] 74s tests/test_field_trimming.py .. [ 27%] 74s tests/test_form_meta.py ........ [ 30%] 74s tests/test_hybrid_properties.py .. [ 31%] 74s tests/test_i18n_extension.py xxx [ 32%] 74s tests/test_inheritance.py ..... [ 34%] 74s tests/test_labels.py .. [ 35%] 74s tests/test_model_field_list.py ........ [ 38%] 74s tests/test_model_form_factory.py ............ [ 43%] 74s tests/test_model_form_field.py ... [ 44%] 74s tests/test_phone_number.py .... [ 45%] 74s tests/test_phone_number_field.py ..F.FFFF.... [ 50%] 74s tests/test_query_select_field.py .......FF...F [ 56%] 75s tests/test_select_field.py F......... [ 60%] 75s tests/test_synonym.py .. [ 60%] 75s tests/test_types.py ...............................x.......F.FF... [ 79%] 75s tests/test_unique_validator.py ....................... [ 88%] 75s tests/test_utils.py x [ 89%] 75s tests/test_validators.py ................... [ 96%] 75s tests/test_weekdays_field.py .. [ 97%] 75s tests/test_widgets.py FFFFFF [100%] 75s 75s =================================== FAILURES =================================== 75s _______________ TestFieldParameters.test_uses_custom_field_class _______________ 75s 75s self = 75s 75s def test_uses_custom_field_class(self): 75s class InputTest(widgets.Input): 75s input_type = 'color' 75s 75s class FieldTest(StringField): 75s widget = InputTest() 75s 75s class ModelTest(self.base): 75s __tablename__ = 'model_test' 75s query = None 75s id = sa.Column(sa.Integer, primary_key=True) 75s test_column = sa.Column( 75s sa.UnicodeText, 75s info={'form_field_class': FieldTest} 75s ) 75s 75s class ModelTestForm(ModelForm): 75s class Meta: 75s model = ModelTest 75s 75s form = ModelTestForm() 75s > assert 'type="color"' in str(form.test_column) 75s 75s tests/test_field_parameters.py:102: 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:141: in __str__ 75s return self() 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 75s return self.meta.render_field(self, kwargs) 75s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 75s return field.widget(field, **render_kw) 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s 75s self = .InputTest object at 0x7cfe200463f0> 75s field = .FieldTest object at 0x7cfe20046cc0> 75s kwargs = {'id': 'test_column', 'type': 'color', 'value': ''} 75s flags = , k = '__class__' 75s 75s def __call__(self, field, **kwargs): 75s kwargs.setdefault("id", field.id) 75s kwargs.setdefault("type", self.input_type) 75s if "value" not in kwargs: 75s kwargs["value"] = field._value() 75s flags = getattr(field, "flags", {}) 75s for k in dir(flags): 75s > if k in self.validation_attrs and k not in kwargs: 75s E AttributeError: 'InputTest' object has no attribute 'validation_attrs' 75s 75s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:176: AttributeError 75s __________ TestPhoneNumberField.test_render_empty_phone_number_value ___________ 75s 75s self = 75s 75s def test_render_empty_phone_number_value(self): 75s form_class = self.init_form(region='FI') 75s form = form_class(MultiDict(phone_number='')) 75s > assert 'value=""' in form.phone_number() 75s 75s tests/test_phone_number_field.py:48: 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 75s return self.meta.render_field(self, kwargs) 75s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 75s return field.widget(field, **render_kw) 75s /usr/lib/python3/dist-packages/wtforms_components/widgets.py:81: in __call__ 75s return super(HTML5Input, self).__call__(field, **options_copy) 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s 75s self = 75s field = 75s kwargs = {'id': 'phone_number', 'type': 'tel', 'value': ''} 75s flags = , k = '__class__' 75s 75s def __call__(self, field, **kwargs): 75s kwargs.setdefault("id", field.id) 75s kwargs.setdefault("type", self.input_type) 75s if "value" not in kwargs: 75s kwargs["value"] = field._value() 75s flags = getattr(field, "flags", {}) 75s for k in dir(flags): 75s > if k in self.validation_attrs and k not in kwargs: 75s E AttributeError: 'TelInput' object has no attribute 'validation_attrs' 75s 75s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:176: AttributeError 75s _______________ TestPhoneNumberField.test_default_display_format _______________ 75s 75s self = 75s 75s def test_default_display_format(self): 75s form_class = self.init_form(region='FI') 75s form = form_class(MultiDict(phone_number='+358401234567')) 75s > assert 'value="040 1234567"' in form.phone_number() 75s 75s tests/test_phone_number_field.py:60: 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 75s return self.meta.render_field(self, kwargs) 75s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 75s return field.widget(field, **render_kw) 75s /usr/lib/python3/dist-packages/wtforms_components/widgets.py:81: in __call__ 75s return super(HTML5Input, self).__call__(field, **options_copy) 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s 75s self = 75s field = 75s kwargs = {'id': 'phone_number', 'type': 'tel', 'value': '040 1234567'} 75s flags = , k = '__class__' 75s 75s def __call__(self, field, **kwargs): 75s kwargs.setdefault("id", field.id) 75s kwargs.setdefault("type", self.input_type) 75s if "value" not in kwargs: 75s kwargs["value"] = field._value() 75s flags = getattr(field, "flags", {}) 75s for k in dir(flags): 75s > if k in self.validation_attrs and k not in kwargs: 75s E AttributeError: 'TelInput' object has no attribute 'validation_attrs' 75s 75s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:176: AttributeError 75s ____________ TestPhoneNumberField.test_international_display_format ____________ 75s 75s self = 75s 75s def test_international_display_format(self): 75s form_class = self.init_form( 75s region='FI', 75s display_format='international' 75s ) 75s form = form_class(MultiDict(phone_number='0401234567')) 75s > assert 'value="+358 40 1234567"' in form.phone_number() 75s 75s tests/test_phone_number_field.py:68: 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 75s return self.meta.render_field(self, kwargs) 75s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 75s return field.widget(field, **render_kw) 75s /usr/lib/python3/dist-packages/wtforms_components/widgets.py:81: in __call__ 75s return super(HTML5Input, self).__call__(field, **options_copy) 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s 75s self = 75s field = 75s kwargs = {'id': 'phone_number', 'type': 'tel', 'value': '+358 40 1234567'} 75s flags = , k = '__class__' 75s 75s def __call__(self, field, **kwargs): 75s kwargs.setdefault("id", field.id) 75s kwargs.setdefault("type", self.input_type) 75s if "value" not in kwargs: 75s kwargs["value"] = field._value() 75s flags = getattr(field, "flags", {}) 75s for k in dir(flags): 75s > if k in self.validation_attrs and k not in kwargs: 75s E AttributeError: 'TelInput' object has no attribute 'validation_attrs' 75s 75s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:176: AttributeError 75s ________________ TestPhoneNumberField.test_e164_display_format _________________ 75s 75s self = 75s 75s def test_e164_display_format(self): 75s form_class = self.init_form( 75s region='FI', 75s display_format='e164' 75s ) 75s form = form_class(MultiDict(phone_number='0401234567')) 75s > assert 'value="+358401234567"' in form.phone_number() 75s 75s tests/test_phone_number_field.py:76: 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 75s return self.meta.render_field(self, kwargs) 75s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 75s return field.widget(field, **render_kw) 75s /usr/lib/python3/dist-packages/wtforms_components/widgets.py:81: in __call__ 75s return super(HTML5Input, self).__call__(field, **options_copy) 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s 75s self = 75s field = 75s kwargs = {'id': 'phone_number', 'type': 'tel', 'value': '+358401234567'} 75s flags = , k = '__class__' 75s 75s def __call__(self, field, **kwargs): 75s kwargs.setdefault("id", field.id) 75s kwargs.setdefault("type", self.input_type) 75s if "value" not in kwargs: 75s kwargs["value"] = field._value() 75s flags = getattr(field, "flags", {}) 75s for k in dir(flags): 75s > if k in self.validation_attrs and k not in kwargs: 75s E AttributeError: 'TelInput' object has no attribute 'validation_attrs' 75s 75s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:176: AttributeError 75s _____ TestPhoneNumberField.test_field_rendering_when_invalid_phone_number ______ 75s 75s self = 75s 75s def test_field_rendering_when_invalid_phone_number(self): 75s form_class = self.init_form() 75s form = form_class(MultiDict(phone_number='invalid')) 75s form.validate() 75s > assert 'value="invalid"' in form.phone_number() 75s 75s tests/test_phone_number_field.py:82: 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 75s return self.meta.render_field(self, kwargs) 75s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 75s return field.widget(field, **render_kw) 75s /usr/lib/python3/dist-packages/wtforms_components/widgets.py:81: in __call__ 75s return super(HTML5Input, self).__call__(field, **options_copy) 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s 75s self = 75s field = 75s kwargs = {'id': 'phone_number', 'type': 'tel', 'value': 'invalid'} 75s flags = , k = '__class__' 75s 75s def __call__(self, field, **kwargs): 75s kwargs.setdefault("id", field.id) 75s kwargs.setdefault("type", self.input_type) 75s if "value" not in kwargs: 75s kwargs["value"] = field._value() 75s flags = getattr(field, "flags", {}) 75s for k in dir(flags): 75s > if k in self.validation_attrs and k not in kwargs: 75s E AttributeError: 'TelInput' object has no attribute 'validation_attrs' 75s 75s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:176: AttributeError 75s ______________ TestGroupedQuerySelectField.test_custom_none_value ______________ 75s 75s self = 75s 75s def test_custom_none_value(self): 75s self.create_cities() 75s MyForm = self.create_form( 75s allow_blank=True, 75s blank_text='Choose city...', 75s blank_value='' 75s ) 75s form = MyForm(DummyPostData({'city': ''})) 75s assert form.validate(), form.errors 75s > assert '' in ( 75s str(form.city) 75s ) 75s 75s tests/test_query_select_field.py:311: 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:141: in __str__ 75s return self() 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 75s return self.meta.render_field(self, kwargs) 75s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 75s return field.widget(field, **render_kw) 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s 75s self = 75s field = 75s kwargs = {'id': 'city'}, flags = , k = '__weakref__' 75s select_params = 'id="city" name="city"' 75s html = ['"] 75s if field.has_groups(): 75s for group, choices in field.iter_groups(): 75s optgroup_params = html_params(label=group) 75s html.append(f"") 75s for choice in choices: 75s val, label, selected, render_kw = choice 75s html.append(self.render_option(val, label, selected, **render_kw)) 75s html.append("") 75s else: 75s for choice in field.iter_choices(): 75s > val, label, selected, render_kw = choice 75s E ValueError: not enough values to unpack (expected 4, got 3) 75s 75s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:374: ValueError 75s __________________ TestGroupedQuerySelectField.test_rendering __________________ 75s 75s self = 75s 75s def test_rendering(self): 75s MyForm = self.create_form() 75s self.create_cities() 75s > assert str(MyForm().city).replace('\n', '') == ( 75s '' 75s ) 75s 75s tests/test_query_select_field.py:318: 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:141: in __str__ 75s return self() 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 75s return self.meta.render_field(self, kwargs) 75s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 75s return field.widget(field, **render_kw) 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s 75s self = 75s field = 75s kwargs = {'id': 'city'}, flags = , k = '__weakref__' 75s select_params = 'id="city" name="city"' 75s html = ['"] 75s if field.has_groups(): 75s for group, choices in field.iter_groups(): 75s optgroup_params = html_params(label=group) 75s html.append(f"") 75s for choice in choices: 75s val, label, selected, render_kw = choice 75s html.append(self.render_option(val, label, selected, **render_kw)) 75s html.append("") 75s else: 75s for choice in field.iter_choices(): 75s > val, label, selected, render_kw = choice 75s E ValueError: not enough values to unpack (expected 4, got 3) 75s 75s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:374: ValueError 75s ______________ TestGroupedQuerySelectMultipleField.test_rendering ______________ 75s 75s self = 75s 75s def test_rendering(self): 75s MyForm = self.create_form() 75s self.create_cities() 75s > assert str(MyForm().cities).replace('\n', '') == ( 75s '' 75s ) 75s 75s tests/test_query_select_field.py:398: 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:141: in __str__ 75s return self() 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 75s return self.meta.render_field(self, kwargs) 75s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 75s return field.widget(field, **render_kw) 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s 75s self = 75s field = 75s kwargs = {'id': 'cities', 'multiple': True}, flags = 75s k = '__weakref__', select_params = 'id="cities" multiple name="cities"' 75s html = ['"] 75s if field.has_groups(): 75s for group, choices in field.iter_groups(): 75s optgroup_params = html_params(label=group) 75s html.append(f"") 75s for choice in choices: 75s val, label, selected, render_kw = choice 75s html.append(self.render_option(val, label, selected, **render_kw)) 75s html.append("") 75s else: 75s for choice in field.iter_choices(): 75s > val, label, selected, render_kw = choice 75s E ValueError: not enough values to unpack (expected 4, got 3) 75s 75s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:374: ValueError 75s ___ TestSelectFieldDefaultValue.test_option_selected_by_field_default_value ____ 75s 75s self = 75s 75s def test_option_selected_by_field_default_value(self): 75s choices = [(u'1', '1'), (u'2', '2')] 75s self.init( 75s type_=sa.Integer, 75s default=u'1', 75s info={'choices': choices} 75s ) 75s form = self.form_class(MultiDict({'test_column': '2'})) 75s > assert ( 75s '' in 75s str(form.test_column) 75s ) 75s 75s tests/test_select_field.py:24: 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:141: in __str__ 75s return self() 75s /usr/lib/python3/dist-packages/wtforms/fields/core.py:164: in __call__ 75s return self.meta.render_field(self, kwargs) 75s /usr/lib/python3/dist-packages/wtforms/meta.py:64: in render_field 75s return field.widget(field, **render_kw) 75s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75s 75s self = 75s field = 75s kwargs = {'id': 'test_column'}, flags = 75s k = 'optional', select_params = 'id="test_column" name="test_column"' 75s html = ['"] 75s if field.has_groups(): 75s for group, choices in field.iter_groups(): 75s optgroup_params = html_params(label=group) 75s html.append(f"") 75s for choice in choices: 75s val, label, selected, render_kw = choice 75s html.append(self.render_option(val, label, selected, **render_kw)) 75s html.append("") 75s else: 75s for choice in field.iter_choices(): 75s > val, label, selected, render_kw = choice 75s E ValueError: not enough values to unpack (expected 4, got 3) 75s 75s /usr/lib/python3/dist-packages/wtforms/widgets/core.py:374: ValueError 75s _ TestModelColumnToFormFieldTypeConversion.test_choice_type_uses_custom_coerce_func _ 75s 75s self = 75s 75s def test_choice_type_uses_custom_coerce_func(self): 75s choices = [('1', 'choice 1'), ('2', 'choice 2')] 75s self.init(type_=ChoiceType(choices)) 75s self.assert_type('test_column', SelectField) 75s model = self.ModelTest(test_column=u'2') 75s form = self.form_class(obj=model) 75s > assert '