Exemplo n.º 1
0
    def test_read_preference_primary(self):
        """[ReadPreferenceTestCase] - get primary node when preference is PRIMARY"""
        node_found = ReadPreference.select_node(
            [self.secondary1, self.secondary2, self.primary],
            ReadPreference.PRIMARY)

        node_found.should.be.eql(self.primary)
Exemplo n.º 2
0
    def test_read_preference_secondary_preferred(self):
        """[ReadPreferenceTestCase] - get secondary node when preference is SECONDARY_PREFERRED"""

        node_found = ReadPreference.select_node([self.secondary1,
            self.secondary2, self.primary], ReadPreference.SECONDARY_PREFERRED)

        node_found.should.be.eql(self.secondary1)
Exemplo n.º 3
0
    def test_read_preference_primary_preferred_up(self):
        """[ReadPreferenceTestCase] - get primary node when preference is PRIMARY_PREFERRED and primary is up"""

        node_found = ReadPreference.select_node([self.secondary1,
            self.secondary2, self.primary], ReadPreference.PRIMARY_PREFERRED)

        node_found.should.be.eql(self.primary)
Exemplo n.º 4
0
    def test_configure_nodes(self):
        """[ReplicaSetTestCase] - Configure nodes"""

        Database.connect(["localhost:27027", "localhost:27028"], dbname='test')

        master_node = ReadPreference.select_primary_node(Database()._nodes)
        secondary_node = ReadPreference.select_node(Database()._nodes, mode=ReadPreference.SECONDARY)

        master_node.host.should.be('localhost')
        master_node.port.should.be(27027)

        secondary_node.host.should.be('localhost')
        secondary_node.port.should.be(27028)

        nodes = Database()._nodes
        nodes.should.have.length_of(2)
Exemplo n.º 5
0
    def test_read_preference_secondary_preferred(self):
        """[ReadPreferenceTestCase] - get secondary node when preference is SECONDARY_PREFERRED"""

        node_found = ReadPreference.select_node(
            [self.secondary1, self.secondary2, self.primary],
            ReadPreference.SECONDARY_PREFERRED)

        node_found.should.be.eql(self.secondary1)
Exemplo n.º 6
0
    def test_read_preference_primary_preferred_up(self):
        """[ReadPreferenceTestCase] - get primary node when preference is PRIMARY_PREFERRED and primary is up"""

        node_found = ReadPreference.select_node(
            [self.secondary1, self.secondary2, self.primary],
            ReadPreference.PRIMARY_PREFERRED)

        node_found.should.be.eql(self.primary)
Exemplo n.º 7
0
    def test_read_preference_secondary_preferred_down(self):
        """[ReadPreferenceTestCase] - get primary node when preference is SECONDARY_PREFERRED and secondary is down"""

        self.secondary1.available = False
        node_found = ReadPreference.select_node([self.secondary1,
            self.secondary2, self.primary], ReadPreference.SECONDARY_PREFERRED)

        node_found.should.be.eql(self.primary)
Exemplo n.º 8
0
    def test_read_preference_secondary_preferred_down(self):
        """[ReadPreferenceTestCase] - get primary node when preference is SECONDARY_PREFERRED and secondary is down"""

        self.secondary1.available = False
        node_found = ReadPreference.select_node(
            [self.secondary1, self.secondary2, self.primary],
            ReadPreference.SECONDARY_PREFERRED)

        node_found.should.be.eql(self.primary)
Exemplo n.º 9
0
    def test_configure_nodes(self):
        """[ReplicaSetTestCase] - Configure nodes"""

        db = Database.init(["localhost:27027", "localhost:27028"], dbname="test")
        db._connect(callback=self.stop)
        self.wait()

        master_node = ReadPreference.select_primary_node(Database()._nodes)
        secondary_node = ReadPreference.select_node(Database()._nodes, mode=ReadPreference.SECONDARY)

        master_node.host.should.be("localhost")
        master_node.port.should.be(27027)

        secondary_node.host.should.be("localhost")
        secondary_node.port.should.be(27028)

        nodes = Database()._nodes
        nodes.should.have.length_of(2)
Exemplo n.º 10
0
    def get_node(self, read_preference=None):
        if read_preference is None:
            read_preference = self._read_preference

        node = ReadPreference.select_node(self._nodes, read_preference)
        if not node:
            raise DatabaseError('could not find an available node')

        return node
Exemplo n.º 11
0
    def test_configure_nodes(self):
        """[ReplicaSetTestCase] - Configure nodes"""

        db = Database.init(["localhost:27027", "localhost:27028"],
                           dbname='test')
        db._connect(callback=self.stop)
        self.wait()

        master_node = ReadPreference.select_primary_node(Database()._nodes)
        secondary_node = ReadPreference.select_node(
            Database()._nodes, mode=ReadPreference.SECONDARY)

        master_node.host.should.be('localhost')
        master_node.port.should.be(27027)

        secondary_node.host.should.be('localhost')
        secondary_node.port.should.be(27028)

        nodes = Database()._nodes
        nodes.should.have.length_of(2)
Exemplo n.º 12
0
    def send_message(self, message, read_preference=None, callback=None):
        if read_preference is None:
            read_preference = self._read_preference

        node = ReadPreference.select_node(self._nodes, read_preference)
        if not node:
            raise DatabaseError('could not find an available node')

        connection = yield gen.Task(node.pool.connection)
        try:
            connection.send_message(message, callback=callback)
        except:
            connection.close()
            raise
Exemplo n.º 13
0
    def get_node(self, read_preference=None, callback=None):
        assert callback

        # check if database is connected
        if not self._connected:
            # connect database
            yield gen.Task(self._connect)

        if read_preference is None:
            read_preference = self._read_preference

        node = ReadPreference.select_node(self._nodes, read_preference)
        if not node:
            raise DatabaseError('could not find an available node')

        callback(node)
Exemplo n.º 14
0
    def get_node(self, read_preference=None, callback=None):
        assert callback

        # check if database is connected
        if not self._connected:
            # connect database
            yield gen.Task(self._connect)

        if read_preference is None:
            read_preference = self._read_preference

        node = ReadPreference.select_node(self._nodes, read_preference)
        if not node:
            raise DatabaseError('could not find an available node')

        callback(node)
Exemplo n.º 15
0
    def test_read_preference_default(self):
        """[ReadPreferenceTestCase] - get primary node by default"""
        node_found = ReadPreference.select_node([self.secondary1,
            self.secondary2, self.primary])

        node_found.should.be.eql(self.primary)
Exemplo n.º 16
0
    def test_read_preference_default(self):
        """[ReadPreferenceTestCase] - get primary node by default"""
        node_found = ReadPreference.select_node(
            [self.secondary1, self.secondary2, self.primary])

        node_found.should.be.eql(self.primary)
Exemplo n.º 17
0
    def test_read_preference_primary(self):
        """[ReadPreferenceTestCase] - get primary node when preference is PRIMARY"""
        node_found = ReadPreference.select_node([self.secondary1,
            self.secondary2, self.primary], ReadPreference.PRIMARY)

        node_found.should.be.eql(self.primary)