def test_no_profile_with_legacy(self):
        # don't construct with both
        self.assertRaises(ValueError,
                          Cluster,
                          load_balancing_policy=RoundRobinPolicy(),
                          execution_profiles={'a': ExecutionProfile()})
        self.assertRaises(
            ValueError,
            Cluster,
            default_retry_policy=DowngradingConsistencyRetryPolicy(),
            execution_profiles={'a': ExecutionProfile()})
        self.assertRaises(
            ValueError,
            Cluster,
            load_balancing_policy=RoundRobinPolicy(),
            default_retry_policy=DowngradingConsistencyRetryPolicy(),
            execution_profiles={'a': ExecutionProfile()})

        # can't add after
        cluster = Cluster(load_balancing_policy=RoundRobinPolicy())
        self.assertRaises(ValueError, cluster.add_execution_profile, 'name',
                          ExecutionProfile())

        # session settings lock out profiles
        cluster = Cluster()
        session = Session(cluster,
                          hosts=[Host("127.0.0.1", SimpleConvictionPolicy)])
        for attr, value in (('default_timeout',
                             1), ('default_consistency_level',
                                  ConsistencyLevel.ANY),
                            ('default_serial_consistency_level',
                             ConsistencyLevel.SERIAL), ('row_factory',
                                                        tuple_factory)):
            cluster._config_mode = _ConfigMode.UNCOMMITTED
            setattr(session, attr, value)
            self.assertRaises(ValueError, cluster.add_execution_profile,
                              'name' + attr, ExecutionProfile())

        # don't accept profile
        self.assertRaises(ValueError,
                          session.execute_async,
                          "query",
                          execution_profile='some name here')
    def test_no_profile_with_legacy(self):
        # don't construct with both
        self.assertRaises(ValueError, Cluster, load_balancing_policy=RoundRobinPolicy(), execution_profiles={'a': ExecutionProfile()})
        self.assertRaises(ValueError, Cluster, default_retry_policy=DowngradingConsistencyRetryPolicy(), execution_profiles={'a': ExecutionProfile()})
        self.assertRaises(ValueError, Cluster, load_balancing_policy=RoundRobinPolicy(),
                          default_retry_policy=DowngradingConsistencyRetryPolicy(), execution_profiles={'a': ExecutionProfile()})

        # can't add after
        cluster = Cluster(load_balancing_policy=RoundRobinPolicy())
        self.assertRaises(ValueError, cluster.add_execution_profile, 'name', ExecutionProfile())

        # session settings lock out profiles
        cluster = Cluster()
        session = Session(cluster, hosts=[Host("127.0.0.1", SimpleConvictionPolicy)])
        for attr, value in (('default_timeout', 1),
                            ('default_consistency_level', ConsistencyLevel.ANY),
                            ('default_serial_consistency_level', ConsistencyLevel.SERIAL),
                            ('row_factory', tuple_factory)):
            cluster._config_mode = _ConfigMode.UNCOMMITTED
            setattr(session, attr, value)
            self.assertRaises(ValueError, cluster.add_execution_profile, 'name' + attr, ExecutionProfile())

        # don't accept profile
        self.assertRaises(ValueError, session.execute_async, "query", execution_profile='some name here')