Skip to content

Commit

Permalink
Add Request.slave_ok shortcut.
Browse files Browse the repository at this point in the history
  • Loading branch information
ajdavis committed Mar 21, 2015
1 parent 3dd0cf6 commit 70b84e2
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
9 changes: 9 additions & 0 deletions mockupdb/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -365,6 +365,15 @@ def flags(self):
"""The request flags or None."""
return self._flags

@property
def slave_ok(self):
"""True if the SlaveOkay wire protocol flag is set."""
return self._flags and bool(
self._flags & QUERY_FLAGS['SlaveOkay'])

slave_okay = slave_ok
"""Synonym for `.slave_ok`."""

@property
def request_id(self):
"""The request id or None."""
Expand Down
7 changes: 7 additions & 0 deletions tests/test_mockupdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,17 @@ def _pack_request(self, ns, slave_ok):
return msg_bytes[16:], request_id

def test_flags(self):
request = Request()
self.assertIsNone(request.flags)
self.assertFalse(request.slave_ok)

msg_bytes, request_id = self._pack_request('db.collection', False)
request = OpQuery.unpack(msg_bytes, None, None, request_id)
self.assertIsInstance(request, OpQuery)
self.assertNotIsInstance(request, Command)
self.assertEqual(0, request.flags)
self.assertFalse(request.slave_ok)
self.assertFalse(request.slave_okay) # Synonymous.

msg_bytes, request_id = self._pack_request('db.$cmd', False)
request = OpQuery.unpack(msg_bytes, None, None, request_id)
Expand All @@ -89,6 +95,7 @@ def test_flags(self):
msg_bytes, request_id = self._pack_request('db.collection', True)
request = OpQuery.unpack(msg_bytes, None, None, request_id)
self.assertEqual(4, request.flags)
self.assertTrue(request.slave_ok)

msg_bytes, request_id = self._pack_request('db.$cmd', True)
request = OpQuery.unpack(msg_bytes, None, None, request_id)
Expand Down

0 comments on commit 70b84e2

Please sign in to comment.