Skip to content

WCM-285: revert IConnector <-> DAVPropertyConverter behaviour #1367

WCM-285: revert IConnector <-> DAVPropertyConverter behaviour

WCM-285: revert IConnector <-> DAVPropertyConverter behaviour #1367

GitHub Actions / Test Results failed Sep 24, 2024 in 0s

14 fail, 56 skipped, 2 699 pass in 7m 26s

    2 files      2 suites   7m 26s ⏱️
2 769 tests 2 699 ✅ 56 💤 14 ❌
2 798 runs  2 728 ✅ 56 💤 14 ❌

Results for commit 0941314.

Annotations

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_contract.PropertiesMock

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_converts_scalar_types_on_write (vivi.core.src.zeit.connector.tests.test_contract.PropertiesMock) failed

deployment/work/source/report.xml [took 1s]
Raw output
AssertionError: True is not 'yes'
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/testing.py", line 386, in delegate
    return getattr(super(type(self), self), name)()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_contract.py", line 907, in test_converts_scalar_types_on_write
    self.assertIs(
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 1166, in assertIs
    self.fail(self._formatMessage(msg, standardMsg))
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 715, in fail
    raise self.failureException(msg)
AssertionError: True is not 'yes'

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_contract.PropertiesSQL

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_converts_scalar_types_on_read (vivi.core.src.zeit.connector.tests.test_contract.PropertiesSQL) failed

deployment/work/source/report.xml [took 0s]
Raw output
AttributeError: 'bool' object has no attribute 'lower'
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/testing.py", line 386, in delegate
    return getattr(super(type(self), self), name)()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_contract.py", line 901, in test_converts_scalar_types_on_read
    self.assertIs(True, self.repository['testcontent'].overscrolling)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/content/dav.py", line 65, in __get__
    return zeit.cms.content.caching.get(uniqueId, key=key, factory=fact, suffix='.meta')
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/content/caching.py", line 39, in get
    return factory()
           ^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/content/dav.py", line 85, in __fetch__
    value = converter.fromProperty(dav_value)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/content/dav.py", line 335, in fromProperty
    return self._fromProperty(value)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/content/dav.py", line 339, in _fromProperty
    return value.lower() in ('yes', 'true')
           ^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'lower'

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_contract.PropertiesSQL

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_converts_scalar_types_on_write (vivi.core.src.zeit.connector.tests.test_contract.PropertiesSQL) failed

deployment/work/source/report.xml [took 0s]
Raw output
sqlalchemy.exc.StatementError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely)
(builtins.TypeError) Object of type datetime is not JSON serializable
[SQL: UPDATE properties SET unsorted=%(unsorted)s, last_updated=now(), date_last_checkout=%(date_last_checkout)s, overscrolling_enabled=%(overscrolling_enabled)s WHERE properties.id = %(properties_id)s::UUID]
[parameters: [{'unsorted': defaultdict(<class 'dict'>, {'meta': {'provides': '<pickle>\n  <initialized_object>\n    <klass>\n      <global name="Provides" module="z ... (865 characters truncated) ...  'yes', 'date_last_checkout': datetime.datetime(2024, 9, 24, 6, 3, 35, 901515, tzinfo=<UTC>), 'properties_id': '7d1d59de-b347-471c-940a-06975ac60fc4'}]]
Traceback (most recent call last):
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1815, in _execute_context
    context = constructor(
              ^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 1510, in _init_compiled
    flattened_processors[key](compiled_params[key])
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/sql/sqltypes.py", line 2714, in process
    return json_serializer(value)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/json/__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/json/encoder.py", line 200, in encode
    chunks = self.iterencode(o, _one_shot=True)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/json/encoder.py", line 258, in iterencode
    return _iterencode(o, 0)
           ^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/json/encoder.py", line 180, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type datetime is not JSON serializable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/testing.py", line 386, in delegate
    return getattr(super(type(self), self), name)()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_contract.py", line 904, in test_converts_scalar_types_on_write
    with checked_out(self.repository['testcontent']) as co:
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/contextlib.py", line 144, in __exit__
    next(self.gen)
  File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/helper.py", line 49, in checked_out
    manager.checkin(
  File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/checkout/manager.py", line 179, in checkin
    added = zope.component.getAdapter(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/zope/component/_api.py", line 94, in getAdapter
    adapter = queryAdapter(object, interface, name, None, context)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/zope/component/_api.py", line 104, in queryAdapter
    return adapter_hook(interface, object, name, default)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/zope/component/hooks.py", line 144, in adapter_hook
    return siteinfo.adapter_hook(interface, object, name, default)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/repository/checkout.py", line 58, in default_repository_content_adapter
    return add_to_repository(context, False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/repository/checkout.py", line 43, in add_to_repository
    repository.addContent(context, ignore_conflicts)
  File "/home/runner/_work/vivi/vivi/core/src/zeit/cms/repository/repository.py", line 302, in addContent
    self.connector.add(resource, verify_etag=not ignore_conflicts)
  File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/postgresql.py", line 291, in add
    self._reload_child_name_cache(parent)
  File "/home/runner/_work/vivi/vivi/core/src/zeit/connector/postgresql.py", line 225, in _reload_child_name_cache
    result = self.session.execute(select(self.Content).filter_by(parent_path=parent))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/orm/scoping.py", line 778, in execute
    return self._proxied.execute(
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
    return self._execute_internal(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2226, in _execute_internal
    ) = compile_state_cls.orm_pre_session_exec(
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/orm/context.py", line 561, in orm_pre_session_exec
    session._autoflush()
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 3061, in _autoflush
    raise e.with_traceback(sys.exc_info()[2])
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 3050, in _autoflush
    self.flush()
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 4352, in flush
    self._flush(objects)
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 4487, in _flush
    with util.safe_reraise():
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 4448, in _flush
    flush_context.execute()
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/orm/unitofwork.py", line 466, in execute
    rec.execute(self)
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/orm/unitofwork.py", line 642, in execute
    util.preloaded.orm_persistence.save_obj(
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/orm/persistence.py", line 85, in save_obj
    _emit_update_statements(
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/orm/persistence.py", line 912, in _emit_update_statements
    c = connection.execute(
        ^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
    return meth(
           ^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
    return connection._execute_clauseelement(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
    ret = self._execute_context(
          ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1821, in _execute_context
    self._handle_dbapi_exception(
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1815, in _execute_context
    context = constructor(
              ^^^^^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 1510, in _init_compiled
    flattened_processors[key](compiled_params[key])
  File "/home/runner/_work/vivi/vivi/deployment/work/app/lib/python3.12/site-packages/sqlalchemy/sql/sqltypes.py", line 2714, in process
    return json_serializer(value)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/json/__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/json/encoder.py", line 200, in encode
    chunks = self.iterencode(o, _one_shot=True)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/json/encoder.py", line 258, in iterencode
    return _iterencode(o, 0)
           ^^^^^^^^^^^^^^^^^
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/json/encoder.py", line 180, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
sqlalchemy.exc.StatementError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely)
(builtins.TypeError) Object of type datetime is not JSON serializable
[SQL: UPDATE properties SET unsorted=%(unsorted)s, last_updated=now(), date_last_checkout=%(date_last_checkout)s, overscrolling_enabled=%(overscrolling_enabled)s WHERE properties.id = %(properties_id)s::UUID]
[parameters: [{'unsorted': defaultdict(<class 'dict'>, {'meta': {'provides': '<pickle>\n  <initialized_object>\n    <klass>\n      <global name="Provides" module="z ... (865 characters truncated) ...  'yes', 'date_last_checkout': datetime.datetime(2024, 9, 24, 6, 3, 35, 901515, tzinfo=<UTC>), 'properties_id': '7d1d59de-b347-471c-940a-06975ac60fc4'}]]

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_empty_input (vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: '' != {}
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 388, in test_empty_input
    self.assert_channels(content.channels, {}, channels)
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 372, in assert_channels
    self.assertEqual(channels, expected_channels)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 885, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 878, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: '' != {}

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_leading_semicolon (vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: ';channel1;channel2' != {'channel1': [], 'channel2': []}
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 442, in test_leading_semicolon
    self.assert_channels(content.channels, {'channel1': [], 'channel2': []}, channels[1:])
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 372, in assert_channels
    self.assertEqual(channels, expected_channels)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 885, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 878, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: ';channel1;channel2' != {'channel1': [], 'channel2': []}

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_modify_channels (vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: 'channel1;channel2 sub1 sub2' != {'channel1': [], 'channel2': ['sub1', 'sub2']}
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 378, in test_modify_channels
    self.assertEqual(content.channels, {'channel1': [], 'channel2': ['sub1', 'sub2']})
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 885, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 878, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: 'channel1;channel2 sub1 sub2' != {'channel1': [], 'channel2': ['sub1', 'sub2']}

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_multiple_channels (vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: 'channel1;channel2;channel3' != {'channel1': [], 'channel2': [], 'channel3': []}
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 398, in test_multiple_channels
    self.assert_channels(
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 372, in assert_channels
    self.assertEqual(channels, expected_channels)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 885, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 878, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: 'channel1;channel2;channel3' != {'channel1': [], 'channel2': [], 'channel3': []}

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_multiple_channels_with_subchannels (vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: 'channel1 sub1;channel2 sub2 sub3;channel3 sub4' != {'channel1': ['sub1'], 'channel2': ['sub2', 'sub3'], 'channel3': ['sub4']}
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 419, in test_multiple_channels_with_subchannels
    self.assert_channels(
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 372, in assert_channels
    self.assertEqual(channels, expected_channels)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 885, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 878, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: 'channel1 sub1;channel2 sub2 sub3;channel3 sub4' != {'channel1': ['sub1'], 'channel2': ['sub2', 'sub3'], 'channel3': ['sub4']}

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_multiple_semicolons (vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: 'channel1;;channel2;;;channel3' != {'channel1': [], 'channel2': [], 'channel3': []}
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 446, in test_multiple_semicolons
    self.assert_channels(
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 372, in assert_channels
    self.assertEqual(channels, expected_channels)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 885, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 878, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: 'channel1;;channel2;;;channel3' != {'channel1': [], 'channel2': [], 'channel3': []}

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_same_channel_with_subchannels (vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: 'channel1 sub1;channel1 sub2 sub3;channel1 sub4' != {'channel1': ['sub1', 'sub2', 'sub3', 'sub4']}
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 410, in test_same_channel_with_subchannels
    self.assert_channels(
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 372, in assert_channels
    self.assertEqual(channels, expected_channels)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 885, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 878, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: 'channel1 sub1;channel1 sub2 sub3;channel1 sub4' != {'channel1': ['sub1', 'sub2', 'sub3', 'sub4']}

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_single_channel (vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: 'channel1' != {'channel1': []}
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 393, in test_single_channel
    self.assert_channels(content.channels, {'channel1': []}, channels)
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 372, in assert_channels
    self.assertEqual(channels, expected_channels)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 885, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 878, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: 'channel1' != {'channel1': []}

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_single_channel_with_subchannels (vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: 'channel1 sub1 sub2' != {'channel1': ['sub1', 'sub2']}
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 405, in test_single_channel_with_subchannels
    self.assert_channels(content.channels, {'channel1': ['sub1', 'sub2']}, channels)
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 372, in assert_channels
    self.assertEqual(channels, expected_channels)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 885, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 878, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: 'channel1 sub1 sub2' != {'channel1': ['sub1', 'sub2']}

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_trailing_semicolon (vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: 'channel1;channel2;' != {'channel1': [], 'channel2': []}
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 437, in test_trailing_semicolon
    self.assert_channels(content.channels, {'channel1': [], 'channel2': []}, channels[:-1])
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 372, in assert_channels
    self.assertEqual(channels, expected_channels)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 885, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 878, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: 'channel1;channel2;' != {'channel1': [], 'channel2': []}

Check warning on line 0 in vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest

See this annotation in the file changed.

@github-actions github-actions / Test Results

test_whitespace_handling (vivi.core.src.zeit.connector.tests.test_postgresql.ChannelsColumnTest) failed

deployment/work/source/report.xml [took 0s]
Raw output
AssertionError: '  channel1  sub1  ;  channel2  sub2  sub3  ;  channel3  sub4  ' != {'channel1': ['sub1'], 'channel2': ['sub2', 'sub3'], 'channel3': ['sub4']}
Traceback (most recent call last):
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 428, in test_whitespace_handling
    self.assert_channels(
  File "/home/runner/_work/vivi/vivi/deployment/work/source/vivi/core/src/zeit/connector/tests/test_postgresql.py", line 372, in assert_channels
    self.assertEqual(channels, expected_channels)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 885, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/home/runner/_work/_tool/Python/3.12.3/x64/lib/python3.12/unittest/case.py", line 878, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: '  channel1  sub1  ;  channel2  sub2  sub3  ;  channel3  sub4  ' != {'channel1': ['sub1'], 'channel2': ['sub2', 'sub3'], 'channel3': ['sub4']}