This is an automated email from the ASF dual-hosted git repository.

jlewandowski pushed a commit to branch ds-trunk-5.0--2024-07-24
in repository https://gitbox.apache.org/repos/asf/cassandra-dtest.git

commit 30240a9b5a21411103b0bddf43b0ebe594da45fe
Author: Ekaterina Dimitrova <[email protected]>
AuthorDate: Thu Feb 9 20:05:23 2023 -0500

    CNDB-9974: Fix tests for CASSANDRA-18252 - removal of scripted UDFs
    
    The ticket also fixes STAR-1886. Backporting CASSANDRA-17190 required also 
CASSANDRA-17383.
---
 auth_test.py                                   | 30 +++++++++++++-------------
 cqlsh_tests/test_cqlsh.py                      |  2 +-
 schema_metadata_test.py                        |  2 +-
 upgrade_tests/upgrade_through_versions_test.py |  7 +++---
 user_functions_test.py                         |  8 +++----
 5 files changed, 25 insertions(+), 24 deletions(-)

diff --git a/auth_test.py b/auth_test.py
index a29e8be4..7d6198b8 100644
--- a/auth_test.py
+++ b/auth_test.py
@@ -1229,7 +1229,7 @@ class TestAuthRoles(AbstractTestAuth):
         @jira_ticket CASSANDRA-7653
         """
         dtest_setup_overrides = DTestSetupOverrides()
-        if '3.0' <= dtest_config.cassandra_version_from_build < '4.2':
+        if '3.0' <= dtest_config.cassandra_version_from_build < '4.0':
             dtest_setup_overrides.cluster_options = 
ImmutableMapping({'enable_user_defined_functions': 'true',
                                                                       
'enable_scripted_user_defined_functions': 'true'})
         else:
@@ -1401,7 +1401,7 @@ class TestAuthRoles(AbstractTestAuth):
         as_mike.execute("CREATE KEYSPACE ks WITH replication = 
{'class':'SimpleStrategy', 'replication_factor':1}")
         as_mike.execute("CREATE TABLE ks.cf (id int primary key, val int)")
         as_mike.execute("CREATE ROLE role1 WITH PASSWORD = '11111' AND 
SUPERUSER = false AND LOGIN = true")
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             as_mike.execute("""CREATE FUNCTION ks.state_function_1(a int, b 
int)
                             CALLED ON NULL INPUT
                             RETURNS int
@@ -1698,7 +1698,7 @@ class TestAuthRoles(AbstractTestAuth):
         self.superuser.execute("CREATE TABLE ks.cf (id int primary key, val 
int)")
         self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND 
SUPERUSER = false AND LOGIN = true")
         self.superuser.execute("CREATE ROLE role1 WITH SUPERUSER = false AND 
LOGIN = false")
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             self.superuser.execute("CREATE FUNCTION ks.state_func(a int, b 
int) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'a+b'")
         else:
             self.superuser.execute("CREATE FUNCTION ks.state_func(a int, b 
int) CALLED ON NULL INPUT RETURNS int LANGUAGE java AS ' return a+b;'")
@@ -2180,7 +2180,7 @@ class TestAuthRoles(AbstractTestAuth):
         """
         self.setup_table()
         self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND 
LOGIN = true")
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
             self.superuser.execute("CREATE FUNCTION ks.\"plusOne\" ( input int 
) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
         else:
@@ -2229,7 +2229,7 @@ class TestAuthRoles(AbstractTestAuth):
         """
         self.setup_table()
         self.superuser.execute("CREATE ROLE mike")
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
         else:
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return input + 1;'")
@@ -2260,7 +2260,7 @@ class TestAuthRoles(AbstractTestAuth):
         self.superuser.execute("INSERT INTO ks.t1 (k,v) values (1,1)")
         self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND 
LOGIN = true")
         self.superuser.execute("GRANT SELECT ON ks.t1 TO mike")
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             self.superuser.execute("CREATE FUNCTION ks.func_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
             self.superuser.execute("CREATE FUNCTION ks.func_two ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
         else:
@@ -2319,7 +2319,7 @@ class TestAuthRoles(AbstractTestAuth):
         * Verify mike can create a new UDF iff he has the CREATE permission
         """
         self.setup_table()
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
         else:
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return input + 1;'")
@@ -2327,7 +2327,7 @@ class TestAuthRoles(AbstractTestAuth):
         as_mike = self.get_session(user='mike', password='12345')
 
         # can't replace an existing function without ALTER permission on the 
parent ks
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             cql = "CREATE OR REPLACE FUNCTION ks.plus_one( input int ) CALLED 
ON NULL INPUT RETURNS int LANGUAGE javascript as '1 + input'"
         else:
             cql = "CREATE OR REPLACE FUNCTION ks.plus_one( input int ) CALLED 
ON NULL INPUT RETURNS int LANGUAGE java as 'return 1 + input;'"
@@ -2370,7 +2370,7 @@ class TestAuthRoles(AbstractTestAuth):
                        InvalidRequest)
 
         # can't create a new function without CREATE on the parent keyspace's 
collection of functions
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             cql = "CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL 
INPUT RETURNS int LANGUAGE javascript AS 'input + 1'"
         else:
             cql = "CREATE FUNCTION ks.plus_one ( input int ) CALLED ON NULL 
INPUT RETURNS int LANGUAGE java AS 'return input + 1;'"
@@ -2390,7 +2390,7 @@ class TestAuthRoles(AbstractTestAuth):
         """
         self.setup_table()
         self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND 
LOGIN = true")
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
         else:
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return input + 1;'")
@@ -2421,7 +2421,7 @@ class TestAuthRoles(AbstractTestAuth):
         """
         self.setup_table()
         self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND 
LOGIN = true")
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
         else: 
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return input + 1;'")
@@ -2452,7 +2452,7 @@ class TestAuthRoles(AbstractTestAuth):
         """
         self.setup_table()
         self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND 
LOGIN = true")
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input double 
) CALLED ON NULL INPUT RETURNS double LANGUAGE javascript AS 'input + 1'")
         else:
@@ -2499,7 +2499,7 @@ class TestAuthRoles(AbstractTestAuth):
         """
         self.setup_table()
         self.superuser.execute("CREATE ROLE mike WITH PASSWORD = '12345' AND 
LOGIN = true")
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             self.superuser.execute("CREATE FUNCTION ks.state_func (a int, b 
int) CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'a + b'")
         else:
             self.superuser.execute("CREATE FUNCTION ks.state_func (a int, b 
int) CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return a + b;'")
@@ -2555,7 +2555,7 @@ class TestAuthRoles(AbstractTestAuth):
         @param cql The statement to verify. Should contain the UDF ks.plus_one
         """
         self.setup_table()
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
         else:
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return input + 1;'")
@@ -2579,7 +2579,7 @@ class TestAuthRoles(AbstractTestAuth):
         self.setup_table()
         self.superuser.execute("CREATE ROLE function_user")
         self.superuser.execute("GRANT EXECUTE ON ALL FUNCTIONS IN KEYSPACE ks 
TO function_user")
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE javascript AS 'input + 1'")
         else:
             self.superuser.execute("CREATE FUNCTION ks.plus_one ( input int ) 
CALLED ON NULL INPUT RETURNS int LANGUAGE java AS 'return input + 1;'")
diff --git a/cqlsh_tests/test_cqlsh.py b/cqlsh_tests/test_cqlsh.py
index 4395e0aa..cb032d00 100644
--- a/cqlsh_tests/test_cqlsh.py
+++ b/cqlsh_tests/test_cqlsh.py
@@ -107,7 +107,7 @@ class TestCqlsh(Tester, CqlshMixin):
     def fixture_dtest_setup_overrides(self, dtest_config):
         dtest_setup_overrides = DTestSetupOverrides()
 
-        if '3.0' <= dtest_config.cassandra_version_from_build < '4.2':
+        if '3.0' <= dtest_config.cassandra_version_from_build < '4.0':
             dtest_setup_overrides.cluster_options = 
ImmutableMapping({'enable_user_defined_functions': 'true',
                                                                       
'enable_scripted_user_defined_functions': 'true'})
         else:
diff --git a/schema_metadata_test.py b/schema_metadata_test.py
index 6f901094..ceadc386 100644
--- a/schema_metadata_test.py
+++ b/schema_metadata_test.py
@@ -507,7 +507,7 @@ class TestSchemaMetadata(Tester):
         cluster = fixture_dtest_setup.cluster
         cluster.schema_event_refresh_window = 0
 
-        if cluster.version() >= '4.2':
+        if cluster.version() >= '4.0':
             
cluster.set_configuration_options({'enable_user_defined_functions': 'true'})
         elif cluster.version() >= '3.0':
             
cluster.set_configuration_options({'enable_user_defined_functions': 'true',
diff --git a/upgrade_tests/upgrade_through_versions_test.py 
b/upgrade_tests/upgrade_through_versions_test.py
index de4942ac..35552252 100644
--- a/upgrade_tests/upgrade_through_versions_test.py
+++ b/upgrade_tests/upgrade_through_versions_test.py
@@ -564,7 +564,8 @@ class TestUpgrade(Tester):
             logger.debug("Set new cassandra dir for %s: %s" % (node.name, 
node.get_install_dir()))
             if internode_ssl and (LooseVersion(version_meta.family) >= 
CASSANDRA_4_0):
                 node.set_configuration_options({'server_encryption_options': 
{'enabled': True, 'enable_legacy_ssl_storage_port': True}})
-            if LooseVersion(version_meta.family) >= CASSANDRA_5_0:
+
+            if LooseVersion(version_meta.family) >= CASSANDRA_4_0:
                 # only clusters starting from <5.0 will have 
enable_scripted_user_defined_functions=true
                 
node.set_configuration_options({'enable_scripted_user_defined_functions': 
'false'})
 
@@ -817,7 +818,7 @@ class BootstrapMixin(object):
         logger.debug("Adding a node to the cluster")
         nnode = new_node(self.cluster, remote_debug_port=str(2000 + 
len(self.cluster.nodes)), data_center=self.cluster.nodelist()[0].data_center)
 
-        if nnode.get_cassandra_version() >= '4.2':
+        if nnode.get_cassandra_version() >= '4.0':
             
nnode.set_configuration_options({'enable_scripted_user_defined_functions': 
'false'})
 
         nnode.start(use_jna=True, wait_other_notice=240, 
wait_for_binary_proto=True)
@@ -831,7 +832,7 @@ class BootstrapMixin(object):
         logger.debug("Adding a node to the cluster")
         nnode = new_node(self.cluster, remote_debug_port=str(2000 + 
len(self.cluster.nodes)), data_center='dc2')
 
-        if nnode.get_cassandra_version() >= '4.2':
+        if nnode.get_cassandra_version() >= '4.0':
             
nnode.set_configuration_options({'enable_scripted_user_defined_functions': 
'false'})
 
         nnode.start(use_jna=True, wait_other_notice=240, 
wait_for_binary_proto=True)
diff --git a/user_functions_test.py b/user_functions_test.py
index d0676019..eb53a5de 100644
--- a/user_functions_test.py
+++ b/user_functions_test.py
@@ -24,7 +24,7 @@ class TestUserFunctions(Tester):
     def fixture_dtest_setup_overrides(self, dtest_config):
         dtest_setup_overrides = DTestSetupOverrides()
 
-        if '3.0' <= dtest_config.cassandra_version_from_build < '4.2':
+        if '3.0' <= dtest_config.cassandra_version_from_build < '4.0':
             dtest_setup_overrides.cluster_options = 
ImmutableMapping({'enable_user_defined_functions': 'true',
                                                                       
'enable_scripted_user_defined_functions': 'true'})
         else:
@@ -147,7 +147,7 @@ class TestUserFunctions(Tester):
         session.execute("CREATE OR REPLACE FUNCTION overloaded(v ascii) called 
on null input RETURNS text LANGUAGE java AS 'return \"f1\";'")
 
         # ensure that works with correct specificity
-        if self.cluster.version() < LooseVersion('4.1'):
+        if self.cluster.version() < LooseVersion('4.0'):
             assert_invalid(session, "SELECT v FROM tab WHERE k = 
overloaded('foo')")
         else:
             assert_none(session, "SELECT v FROM tab WHERE k = 
overloaded('foo')")
@@ -170,7 +170,7 @@ class TestUserFunctions(Tester):
         # should now work - unambiguous
         session.execute("DROP FUNCTION overloaded")
 
-    @since('3.0', max_version='4.1.x')
+    @since('3.0', max_version='4.0.x')
     def test_udf_scripting(self):
         session = self.prepare()
         session.execute("create table nums (key int primary key, val double);")
@@ -211,7 +211,7 @@ class TestUserFunctions(Tester):
         assert_one(session, "SELECT avg(val) FROM nums", [5.0])
         assert_one(session, "SELECT count(*) FROM nums", [9])
 
-        if self.cluster.version() < LooseVersion('4.2'):
+        if self.cluster.version() < LooseVersion('4.0'):
             session.execute("create function test(a int, b double) called on 
null input returns int language javascript as 'a + b;'")
         else:
             session.execute("create function test(a int, b double) called on 
null input returns int language java as 'return a + 
Integer.valueOf(b.intValue());'")


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to