Skip to content

test_learner_learns_about_domains_separately fails on CI #3289

@KPrasch

Description

@KPrasch

Describe the Bug
test_learner_learns_about_domains_separately intermittently fails on CI

To Reproduce
I'm not sure how to reproduce this locally

Traceback or Screenshots (Optional)
A full traceback can be found in this action: https://github.com/nucypher/nucypher/actions/runs/6547972633/job/17781578171?pr=3288

Run python -m pytest tests/integration
INFO: Compiling 'test_conditions.json'.
WARNING: Unable to parse ContractType from 'test_conditions.json'.
============================= test session starts ==============================
platform linux -- Python 3.8.18, pytest-6.2.5, py-1.11.0, pluggy-1.3.0
rootdir: /home/runner/work/nucypher/nucypher, configfile: pytest.ini
plugins: nucypher-7.0.0rc1, twisted-1.14.0, web3-6.9.0, time-machine-2.12.0, hypothesis-6.83.0, cov-4.1.0, eth-ape-0.6.19, timeout-2.1.0, mock-3.11.1
collected 255 items

tests/integration/actors/test_operator.py ..                             [  0%]
tests/integration/blockchain/test_currency.py .                          [  1%]
tests/integration/blockchain/test_integration_block_confirmations.py s   [  1%]
tests/integration/blockchain/test_integration_dkg_ritual.py ......       [  3%]
tests/integration/blockchain/test_integration_ritual_tracker.py .....    [  5%]
tests/integration/blockchain/test_keystore_signer_filesystem_integration.py . [  6%]
.......                                                                  [  9%]
tests/integration/characters/test_alice_decrypt.py .                     [  9%]
tests/integration/characters/test_bob_handles_frags.py .....             [ 11%]
tests/integration/characters/test_bob_joins_policy_and_retrieves.py ...s [ 12%]
                                                                         [ 12%]
tests/integration/characters/test_conditional_reencryption.py .......... [ 16%]
.                                                                        [ 17%]
tests/integration/characters/test_dkg_and_testnet_bypass.py ..           [ 18%]
tests/integration/characters/test_freerider_attacks.py s                 [ 18%]
tests/integration/characters/test_grant_and_revoke.py ..s                [ 19%]
tests/integration/characters/test_ursula_startup.py ...                  [ 20%]
tests/integration/cli/test_cli_config.py ..                              [ 21%]
tests/integration/cli/test_mixed_config.py ..                            [ 22%]
tests/integration/cli/test_ursula_cli_ip_detection.py ..                 [ 23%]
tests/integration/cli/test_ursula_config_cli.py ......                   [ 25%]
tests/integration/cli/test_ursula_local_keystore_cli_functionality.py .  [ 25%]
tests/integration/cli/actions/test_auth_actions.py ..........            [ 29%]
tests/integration/cli/actions/test_config_actions.py ................... [ 37%]
............                                                             [ 41%]
tests/integration/cli/actions/test_select_client_account.py ............ [ 46%]
..................................................sssssss                [ 69%]
tests/integration/cli/actions/test_select_config_file.py ...             [ 70%]
tests/integration/cli/actions/test_select_network.py ..                  [ 70%]
tests/integration/config/test_base_configuration.py .....                [ 72%]
tests/integration/config/test_character_configuration.py .......s        [ 76%]
tests/integration/config/test_configuration_migrations.py .              [ 76%]
tests/integration/config/test_configuration_persistence.py .             [ 76%]
tests/integration/config/test_keystore_integration.py ..s.               [ 78%]
tests/integration/config/test_storages.py ...                            [ 79%]
tests/integration/learning/test_discovery_phases.py .s                   [ 80%]
tests/integration/learning/test_domains.py F

=================================== FAILURES ===================================
_________________ test_learner_learns_about_domains_separately _________________

lonely_ursula_maker = <tests.fixtures.lonely_ursula_maker.<locals>._PartialUrsulaMaker object at 0x7ff9c2f38670>
domain_1 = 'domain_uno', domain_2 = 'domain_dos'
registry_1 = ContractRegistry(id=9327a4)
registry_2 = ContractRegistry(id=9327a4)
caplog = <_pytest.logging.LogCaptureFixture object at 0x7ff9c2f38640>

    def test_learner_learns_about_domains_separately(
        lonely_ursula_maker, domain_1, domain_2, registry_1, registry_2, caplog
    ):
        hero_learner, other_first_domain_learner = lonely_ursula_maker(
            domain=domain_1,
            registry=registry_1,
            quantity=2,
        )
        _nobody = lonely_ursula_maker(
            domain=domain_1, registry=registry_1, quantity=1
        ).pop()
        other_first_domain_learner.remember_node(_nobody, eager=True)
    
        second_domain_learners = lonely_ursula_maker(
            domain=domain_2, registry=registry_2, know_each_other=True, quantity=3
        )
    
        assert len(hero_learner.known_nodes) == 0
    
        # Learn from a teacher in our domain.
        hero_learner.remember_node(other_first_domain_learner, eager=True)
        hero_learner.start_learning_loop(now=True)
        hero_learner.learn_from_teacher_node(eager=True)
    
        # All domain 1 nodes
>       assert len(hero_learner.known_nodes) == 2
E       AssertionError: assert 1 == 2
E        +  where 1 = len(FleetSensor(FleetState(FleetStateChecksum:56894ab3bf034505..., {'0xaBbaCadaBA000000000000000000000000000006': (Ursula)...)}, <weakref at 0x7ff9c2f39ae0; to 'Ursula' at 0x7ff9c2f38e50>, <nucypher_core.NodeMetadata object at 0x561b937d1190>)))
E        +    where FleetSensor(FleetState(FleetStateChecksum:56894ab3bf034505..., {'0xaBbaCadaBA000000000000000000000000000006': (Ursula)...)}, <weakref at 0x7ff9c2f39ae0; to 'Ursula' at 0x7ff9c2f38e50>, <nucypher_core.NodeMetadata object at 0x561b937d1190>)) = (Ursula)⇀LemonChiffon Zulu FireBrick Foxtrot↽ (0xaBBACADABA000000000000000000000000000005).known_nodes

tests/integration/learning/test_domains.py:70: AssertionError

Metadata

Metadata

Assignees

No one assigned

    Labels

    Bug 🐛Broken functionality

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions