def test_assertions(self):
        # assert_exception_test
        mock_session = Mock(
            **
            {'execute.side_effect': AlreadyExists("Dummy exception message.")})
        assert_exception(mock_session, "DUMMY QUERY", expected=AlreadyExists)

        # assert_unavailable_test
        mock_session = Mock(**{
            'execute.side_effect':
            Unavailable("Dummy Unavailabile message.")
        })
        assert_unavailable(mock_session.execute)

        # assert_invalid_test
        mock_session = Mock(**{
            'execute.side_effect':
            InvalidRequest("Dummy InvalidRequest message.")
        })
        assert_invalid(mock_session, "DUMMY QUERY")

        # assert_unauthorized_test
        mock_session = Mock(**{
            'execute.side_effect':
            Unauthorized("Dummy Unauthorized message.")
        })
        assert_unauthorized(mock_session, "DUMMY QUERY", None)

        # assert_one_test
        mock_session = Mock()
        mock_session.execute = Mock(return_value=[[1, 1]])
        assert_one(mock_session, "SELECT * FROM test", [1, 1])

        # assert_none_test
        mock_session = Mock()
        mock_session.execute = Mock(return_value=[])
        assert_none(mock_session, "SELECT * FROM test")

        # assert_all_test
        mock_session = Mock()
        mock_session.execute = Mock(return_value=[[i, i]
                                                  for i in range(0, 10)])
        assert_all(mock_session,
                   "SELECT k, v FROM test", [[i, i] for i in range(0, 10)],
                   ignore_order=True)

        # assert_almost_equal_test
        assert_almost_equal(1, 1.1, 1.2, 1.9, error=1.0)

        # assert_row_count_test
        mock_session = Mock()
        mock_session.execute = Mock(return_value=[[1]])
        assert_row_count(mock_session, 'test', 1)

        # assert_length_equal_test
        check = [1, 2, 3, 4]
        assert_length_equal(check, 4)
Пример #2
0
    def assertions_test(self):
        # assert_exception_test
        mock_session = Mock(**{'execute.side_effect': AlreadyExists("Dummy exception message.")})
        assert_exception(mock_session, "DUMMY QUERY", expected=AlreadyExists)

        # assert_unavailable_test
        mock_session = Mock(**{'execute.side_effect': Unavailable("Dummy Unavailabile message.")})
        assert_unavailable(mock_session.execute)

        # assert_invalid_test
        mock_session = Mock(**{'execute.side_effect': InvalidRequest("Dummy InvalidRequest message.")})
        assert_invalid(mock_session, "DUMMY QUERY")

        # assert_unauthorized_test
        mock_session = Mock(**{'execute.side_effect': Unauthorized("Dummy Unauthorized message.")})
        assert_unauthorized(mock_session, "DUMMY QUERY", None)

        # assert_one_test
        mock_session = Mock()
        mock_session.execute = Mock(return_value=[[1, 1]])
        assert_one(mock_session, "SELECT * FROM test", [1, 1])

        # assert_none_test
        mock_session = Mock()
        mock_session.execute = Mock(return_value=[])
        assert_none(mock_session, "SELECT * FROM test")

        # assert_all_test
        mock_session = Mock()
        mock_session.execute = Mock(return_value=[[i, i] for i in range(0, 10)])
        assert_all(mock_session, "SELECT k, v FROM test", [[i, i] for i in range(0, 10)], ignore_order=True)

        # assert_almost_equal_test
        assert_almost_equal(1, 1.1, 1.2, 1.9, error=1.0)

        # assert_row_count_test
        mock_session = Mock()
        mock_session.execute = Mock(return_value=[[1]])
        assert_row_count(mock_session, 'test', 1)

        # assert_length_equal_test
        check = [1, 2, 3, 4]
        assert_length_equal(check, 4)
    def test_local_system_keyspaces(self):
        cluster = self.cluster
        cluster.populate(1).start()

        node = cluster.nodelist()[0]
        session = self.patient_cql_connection(node)

        # ALTER KEYSPACE should fail for system and system_schema
        stmt = """
            ALTER KEYSPACE system
            WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1' : '1'};"""
        assert_exception(session, stmt, expected=Unauthorized)

        stmt = """
            ALTER KEYSPACE system_schema
            WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1' : '1'};"""
        assert_exception(session, stmt, expected=Unauthorized)

        # DROP KEYSPACE should fail for system and system_schema
        assert_exception(session, 'DROP KEYSPACE system;',        expected=Unauthorized)
        assert_exception(session, 'DROP KEYSPACE system_schema;', expected=Unauthorized)

        # CREATE TABLE should fail in system and system_schema
        assert_exception(session,
                         'CREATE TABLE system.new_table (id int PRIMARY KEY);',
                         expected=Unauthorized)

        assert_exception(session,
                         'CREATE TABLE system_schema.new_table (id int PRIMARY KEY);',
                         expected=Unauthorized)

        # ALTER TABLE should fail in system and system_schema
        assert_exception(session,
                         "ALTER TABLE system.local WITH comment = '';",
                         expected=Unauthorized)

        assert_exception(session,
                         "ALTER TABLE system_schema.tables WITH comment = '';",
                         expected=Unauthorized)

        # DROP TABLE should fail in system and system_schema
        assert_exception(session, 'DROP TABLE system.local;',         expected=Unauthorized)
        assert_exception(session, 'DROP TABLE system_schema.tables;', expected=Unauthorized)
    def test_replicated_system_keyspaces(self):
        cluster = self.cluster
        cluster.populate(1).start()

        node = cluster.nodelist()[0]
        session = self.patient_cql_connection(node)

        # ALTER KEYSPACE should work for system_auth, system_distributed, and system_traces
        stmt = """
            ALTER KEYSPACE system_auth
            WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1' : '1'};"""
        assert_none(session, stmt)

        stmt = """
            ALTER KEYSPACE system_distributed
            WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1' : '1'};"""
        assert_none(session, stmt)

        stmt = """
            ALTER KEYSPACE system_traces
            WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1' : '1'};"""
        assert_none(session, stmt)

        stmt = """
            SELECT replication
            FROM system_schema.keyspaces
            WHERE keyspace_name IN ('system_auth', 'system_distributed', 'system_traces');"""
        replication = {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'datacenter1': '1'}
        assert_all(session, stmt, [[replication], [replication], [replication]])

        # DROP KEYSPACE should fail for system_auth, system_distributed, and system_traces
        assert_exception(session, 'DROP KEYSPACE system_auth;', expected=Unauthorized)
        assert_exception(session, 'DROP KEYSPACE system_distributed;', expected=Unauthorized)
        assert_exception(session, 'DROP KEYSPACE system_traces;', expected=Unauthorized)

        # CREATE TABLE should fail in system_auth, system_distributed, and system_traces
        assert_exception(session,
                         'CREATE TABLE system_auth.new_table (id int PRIMARY KEY);',
                         expected=Unauthorized)

        assert_exception(session,
                         'CREATE TABLE system_distributed.new_table (id int PRIMARY KEY);',
                         expected=Unauthorized)

        assert_exception(session,
                         'CREATE TABLE system_traces.new_table (id int PRIMARY KEY);',
                         expected=Unauthorized)

        # ALTER TABLE should fail in system_auth, system_distributed, and system_traces
        assert_exception(session,
                         "ALTER TABLE system_auth.roles WITH comment = '';",
                         expected=Unauthorized)

        assert_exception(session,
                         "ALTER TABLE system_distributed.repair_history WITH comment = '';",
                         expected=Unauthorized)

        assert_exception(session,
                         "ALTER TABLE system_traces.sessions WITH comment = '';",
                         expected=Unauthorized)

        # DROP TABLE should fail in system_auth, system_distributed, and system_traces
        assert_exception(session, 'DROP TABLE system_auth.roles;', expected=Unauthorized)
        assert_exception(session, 'DROP TABLE system_distributed.repair_history;', expected=Unauthorized)
        assert_exception(session, 'DROP TABLE system_traces.sessions;', expected=Unauthorized)
    def test_replicated_system_keyspaces(self):
        cluster = self.cluster
        cluster.populate(1).start()

        node = cluster.nodelist()[0]
        session = self.patient_cql_connection(node)

        # ALTER KEYSPACE should work for system_auth, system_distributed, and system_traces
        stmt = """
            ALTER KEYSPACE system_auth
            WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1' : '1'};"""
        assert_none(session, stmt)

        stmt = """
            ALTER KEYSPACE system_distributed
            WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1' : '1'};"""
        assert_none(session, stmt)

        stmt = """
            ALTER KEYSPACE system_traces
            WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1' : '1'};"""
        assert_none(session, stmt)

        stmt = """
            SELECT replication
            FROM system_schema.keyspaces
            WHERE keyspace_name IN ('system_auth', 'system_distributed', 'system_traces');"""
        replication = {
            'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy',
            'datacenter1': '1'
        }
        assert_all(session, stmt,
                   [[replication], [replication], [replication]])

        # DROP KEYSPACE should fail for system_auth, system_distributed, and system_traces
        assert_exception(session,
                         'DROP KEYSPACE system_auth;',
                         expected=Unauthorized)
        assert_exception(session,
                         'DROP KEYSPACE system_distributed;',
                         expected=Unauthorized)
        assert_exception(session,
                         'DROP KEYSPACE system_traces;',
                         expected=Unauthorized)

        # CREATE TABLE should fail in system_auth, system_distributed, and system_traces
        assert_exception(
            session,
            'CREATE TABLE system_auth.new_table (id int PRIMARY KEY);',
            expected=Unauthorized)

        assert_exception(
            session,
            'CREATE TABLE system_distributed.new_table (id int PRIMARY KEY);',
            expected=Unauthorized)

        assert_exception(
            session,
            'CREATE TABLE system_traces.new_table (id int PRIMARY KEY);',
            expected=Unauthorized)

        # ALTER TABLE should fail in system_auth, system_distributed, and system_traces
        assert_exception(session,
                         "ALTER TABLE system_auth.roles WITH comment = '';",
                         expected=Unauthorized)

        assert_exception(
            session,
            "ALTER TABLE system_distributed.repair_history WITH comment = '';",
            expected=Unauthorized)

        assert_exception(
            session,
            "ALTER TABLE system_traces.sessions WITH comment = '';",
            expected=Unauthorized)

        # DROP TABLE should fail in system_auth, system_distributed, and system_traces
        assert_exception(session,
                         'DROP TABLE system_auth.roles;',
                         expected=Unauthorized)
        assert_exception(session,
                         'DROP TABLE system_distributed.repair_history;',
                         expected=Unauthorized)
        assert_exception(session,
                         'DROP TABLE system_traces.sessions;',
                         expected=Unauthorized)
    def test_local_system_keyspaces(self):
        cluster = self.cluster
        cluster.populate(1).start()

        node = cluster.nodelist()[0]
        session = self.patient_cql_connection(node)

        # ALTER KEYSPACE should fail for system and system_schema
        stmt = """
            ALTER KEYSPACE system
            WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1' : '1'};"""
        assert_exception(session, stmt, expected=Unauthorized)

        stmt = """
            ALTER KEYSPACE system_schema
            WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1' : '1'};"""
        assert_exception(session, stmt, expected=Unauthorized)

        # DROP KEYSPACE should fail for system and system_schema
        assert_exception(session,
                         'DROP KEYSPACE system;',
                         expected=Unauthorized)
        assert_exception(session,
                         'DROP KEYSPACE system_schema;',
                         expected=Unauthorized)

        # CREATE TABLE should fail in system and system_schema
        assert_exception(session,
                         'CREATE TABLE system.new_table (id int PRIMARY KEY);',
                         expected=Unauthorized)

        assert_exception(
            session,
            'CREATE TABLE system_schema.new_table (id int PRIMARY KEY);',
            expected=Unauthorized)

        # ALTER TABLE should fail in system and system_schema
        assert_exception(session,
                         "ALTER TABLE system.local WITH comment = '';",
                         expected=Unauthorized)

        assert_exception(session,
                         "ALTER TABLE system_schema.tables WITH comment = '';",
                         expected=Unauthorized)

        # DROP TABLE should fail in system and system_schema
        assert_exception(session,
                         'DROP TABLE system.local;',
                         expected=Unauthorized)
        assert_exception(session,
                         'DROP TABLE system_schema.tables;',
                         expected=Unauthorized)