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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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)
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
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)
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)
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)
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)