Skip to content

[unstable][asyncore] test_can_register_udt_before_connecting unstable #264

Closed
@fruch

Description

@fruch

since we enable asyncore tests in #260, we see that this test is unstable

_______________ UDTTests.test_can_register_udt_before_connecting _______________

self = <tests.integration.standard.test_udts.UDTTests testMethod=test_can_register_udt_before_connecting>

    def test_can_register_udt_before_connecting(self):
        """
        Test the registration of UDTs before session creation
        """
    
        c = TestCluster()
        s = c.connect(wait_for_all_pools=True)
    
        s.execute("""
            CREATE KEYSPACE udt_test_register_before_connecting
            WITH replication = { 'class' : 'SimpleStrategy', 'replication_factor': '1' }
            """)
        s.set_keyspace("udt_test_register_before_connecting")
        s.execute("CREATE TYPE user (age int, name text)")
        s.execute("CREATE TABLE mytable (a int PRIMARY KEY, b frozen<user>)")
    
        s.execute("""
            CREATE KEYSPACE udt_test_register_before_connecting2
            WITH replication = { 'class' : 'SimpleStrategy', 'replication_factor': '1' }
            """)
        s.set_keyspace("udt_test_register_before_connecting2")
        s.execute("CREATE TYPE user (state text, is_cool boolean)")
        s.execute("CREATE TABLE mytable (a int PRIMARY KEY, b frozen<user>)")
    
        # now that types are defined, shutdown and re-create Cluster
        c.shutdown()
        c = TestCluster()
    
        User1 = namedtuple('user', ('age', 'name'))
        User2 = namedtuple('user', ('state', 'is_cool'))
    
        c.register_user_type("udt_test_register_before_connecting", "user", User1)
        c.register_user_type("udt_test_register_before_connecting2", "user", User2)
    
        s = c.connect(wait_for_all_pools=True)
    
        s.set_keyspace("udt_test_register_before_connecting")
        s.execute("INSERT INTO mytable (a, b) VALUES (%s, %s)", (0, User1(42, 'bob')))
        result = s.execute("SELECT b FROM mytable WHERE a=0")
        row = result[0]
        self.assertEqual(42, row.b.age)
        self.assertEqual('bob', row.b.name)
        self.assertTrue(type(row.b) is User1)
    
        # use the same UDT name in a different keyspace
        s.set_keyspace("udt_test_register_before_connecting2")
>       s.execute("INSERT INTO mytable (a, b) VALUES (%s, %s)", (0, User2('Texas', True)))

tests/integration/standard/test_udts.py:164: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
cassandra/cluster.py:2710: in cassandra.cluster.Session.execute
    return self.execute_async(query, parameters, trace, custom_payload, timeout, execution_profile, paging_state, host, execute_as).result()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

>   raise self._final_exception
E   cassandra.InvalidRequest: Error from server: code=2200 [Invalid query] message="Unknown field 'is_cool' in value of user defined type user"

cassandra/cluster.py:5050: InvalidRequest

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions