Example #1
0
 def test_command_get(self):
     # make sure there's nothing there
     value = self.client.get(self.test_key)
     self.assert_(value is None)
     # try to read value from command line
     args = 'get %s' % self.test_key
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns error and no output
     self.assert_(errorcode)
     self.assertEquals('', output)
     # put something there
     self.client.put(self.test_key, 'myvalue')
     # try to read value from command line
     args = 'get %s' % self.test_key
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and value
     self.assertFalse(errorcode)
     self.assertEquals('myvalue\n', output)
     # and the data is in fact there
     entry = self.client.get(self.test_key)
     self.assertEquals('myvalue', entry.value)
Example #2
0
 def test_command_list(self):
     # range will include test_key
     start = self.test_key[:-1]
     end = self.test_key + 'END'
     # range starts empty
     key_list = self.client.getKeyRange(start, end)
     self.assertEquals([], key_list)
     # validate empty from the command line
     args = 'list %s %s' % (start, end)
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and no output
     self.assertFalse(errorcode)
     self.assertEquals('', output)
     # add test_key
     self.client.put(self.test_key, 'myvalue')
     # validate list from the command line
     args = 'list %s %s' % (start, end)
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and list of keys
     self.assertFalse(errorcode)
     self.assertEquals('%s\n' % self.test_key, output)
Example #3
0
 def test_command_list(self):
     # range will include test_key
     start = self.test_key[:-1]
     end = self.test_key + 'END'
     # range starts empty
     key_list = self.client.getKeyRange(start, end)
     self.assertEquals([], key_list)
     # validate empty from the command line
     args = 'list %s %s' % (start, end)
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and no output
     self.assertFalse(errorcode)
     self.assertEquals('', output)
     # add test_key
     self.client.put(self.test_key, 'myvalue')
     # validate list from the command line
     args = 'list %s %s' % (start, end)
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and list of keys
     self.assertFalse(errorcode)
     self.assertEquals('%s\n' % self.test_key, output)
Example #4
0
 def test_command_get(self):
     # make sure there's nothing there
     value = self.client.get(self.test_key)
     self.assert_(value is None)
     # try to read value from command line
     args = 'get %s' % self.test_key
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns error and no output
     self.assert_(errorcode)
     self.assertEquals('', output)
     # put something there
     self.client.put(self.test_key, 'myvalue')
     # try to read value from command line
     args = 'get %s' % self.test_key
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and value
     self.assertFalse(errorcode)
     self.assertEquals('myvalue\n', output)
     # and the data is in fact there
     entry = self.client.get(self.test_key)
     self.assertEquals('myvalue', entry.value)
Example #5
0
 def test_command_prev(self):
     # make sure there's nothing there
     value = self.client.get(self.test_key)
     self.assert_(value is None)
     # try to read value from command line
     args = 'prev %sXXX' % self.test_key
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # if simulator is empty, there's no output
     if not output:
         # returns error and no output
         self.assertEquals('', output)
         self.assertTrue(errorcode)
     else:
         self.assertFalse(errorcode)
     # put something there
     self.client.put(self.test_key, 'myvalue')
     # try a short offset to value from command line
     args = 'prev %sXXX' % self.test_key
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and data
     self.assertFalse(errorcode)
     self.assertEquals('myvalue\n', output)
     # try a longer offset to value from command line
     args = 'prev %s~' % self.test_key.rsplit('/', 1)[0]
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and data
     self.assertFalse(errorcode)
     self.assertEquals('myvalue\n', output)
     # try a prev right on top of value from command line
     args = 'prev %s' % self.test_key
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # if simulator is empty, there's no output
     if not output:
         # returns error and no output
         self.assertEquals('', output)
         self.assertTrue(errorcode)
     else:
         self.assertFalse(errorcode)
     # and past value from command line
     args = 'prev %s' % self.test_key[:-1]
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # if simulator is empty, there's no output
     if not output:
         # returns error and no output
         self.assertEquals('', output)
         self.assertTrue(errorcode)
     else:
         self.assertFalse(errorcode)
Example #6
0
 def test_command_prev(self):
     # make sure there's nothing there
     value = self.client.get(self.test_key)
     self.assert_(value is None)
     # try to read value from command line
     args = 'prev %sXXX' % self.test_key
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # if simulator is empty, there's no output
     if not output:
         # returns error and no output
         self.assertEquals('', output)
         self.assertTrue(errorcode)
     else:
         self.assertFalse(errorcode)
     # put something there
     self.client.put(self.test_key, 'myvalue')
     # try a short offset to value from command line
     args = 'prev %sXXX' % self.test_key
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and data
     self.assertFalse(errorcode)
     self.assertEquals('myvalue\n', output)
     # try a longer offset to value from command line
     args = 'prev %s~' % self.test_key.rsplit('/', 1)[0]
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and data
     self.assertFalse(errorcode)
     self.assertEquals('myvalue\n', output)
     # try a prev right on top of value from command line
     args = 'prev %s' % self.test_key
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # if simulator is empty, there's no output
     if not output:
         # returns error and no output
         self.assertEquals('', output)
         self.assertTrue(errorcode)
     else:
         self.assertFalse(errorcode)
     # and past value from command line
     args = 'prev %s' % self.test_key[:-1]
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # if simulator is empty, there's no output
     if not output:
         # returns error and no output
         self.assertEquals('', output)
         self.assertTrue(errorcode)
     else:
         self.assertFalse(errorcode)
Example #7
0
 def test_command_put(self):
     # make sure there's nothing there
     value = self.client.get(self.test_key)
     self.assert_(value is None)
     # add something from the command line
     args = 'put %s myvalue' % self.test_key
     errorcode = cmd.main(self.conn_args + args)
     # returns no error
     self.assertFalse(errorcode)
     # validate key is set
     entry = self.client.get(self.test_key)
     self.assertEquals('myvalue', entry.value)
Example #8
0
 def test_command_put(self):
     # make sure there's nothing there
     value = self.client.get(self.test_key)
     self.assert_(value is None)
     # add something from the command line
     args = 'put %s myvalue' % self.test_key
     errorcode = cmd.main(self.conn_args + args)
     # returns no error
     self.assertFalse(errorcode)
     # validate key is set
     entry = self.client.get(self.test_key)
     self.assertEquals('myvalue', entry.value)
Example #9
0
 def test_list_prefix(self):
     # because the cmd output uses text/line based delimiters it's hard to
     # reason about keynames with a new line in them in this test
     bad_characters = [ord(c) for c in ('\n', '\r')]
     keys = [
         self.test_key + chr(ord_) for ord_ in range(200)
         if ord_ not in bad_characters
     ]
     for i, key in enumerate(keys):
         self.client.put(key, 'myvalue.%s' % i)
     args = 'list %s' % self.test_key
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and list of keys
     self.assertFalse(errorcode)
     output_keys = output.splitlines()
     self.assertEquals(len(keys), len(output_keys))
     self.assertEquals(keys, output_keys)
     # add the prefix key
     self.client.put(self.test_key, 'mystart')
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and list of keys
     self.assertFalse(errorcode)
     output_keys = output.splitlines()
     self.assertEquals(len(keys) + 1, len(output_keys))
     self.assertEquals(self.test_key, output_keys[0])
     # add something just "after" the prefix
     end_key = self.test_key[-1] + chr(ord(self.test_key[-1]) + 1)
     self.client.put(end_key, 'myend')
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and list of keys
     self.assertFalse(errorcode)
     output_keys = output.splitlines()
     self.assertEquals(len(keys) + 1, len(output_keys))
     self.assert_(end_key not in output_keys)
Example #10
0
 def test_list_prefix(self):
     # because the cmd output uses text/line based delimiters it's hard to
     # reason about keynames with a new line in them in this test
     bad_characters = [ord(c) for c in ('\n', '\r')]
     keys = [self.test_key + chr(ord_) for ord_ in range(200) if ord_ not
             in bad_characters]
     for i, key in enumerate(keys):
         self.client.put(key, 'myvalue.%s' % i)
     args = 'list %s' % self.test_key
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and list of keys
     self.assertFalse(errorcode)
     output_keys = output.splitlines()
     self.assertEquals(len(keys), len(output_keys))
     self.assertEquals(keys, output_keys)
     # add the prefix key
     self.client.put(self.test_key, 'mystart')
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and list of keys
     self.assertFalse(errorcode)
     output_keys = output.splitlines()
     self.assertEquals(len(keys) + 1, len(output_keys))
     self.assertEquals(self.test_key, output_keys[0])
     # add something just "after" the prefix
     end_key = self.test_key[-1] + chr(ord(self.test_key[-1]) + 1)
     self.client.put(end_key, 'myend')
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     # returns no error and list of keys
     self.assertFalse(errorcode)
     output_keys = output.splitlines()
     self.assertEquals(len(keys) + 1, len(output_keys))
     self.assert_(end_key not in output_keys)
Example #11
0
 def test_command_prev_verbose(self):
     # put something there
     self.client.put(self.test_key, 'myvalue')
     # try a short offset to value from command line
     args = '-vb prev %s~' % self.test_key
     with self.capture_stdio() as stdio:
         errorcode = cmd.main(self.conn_args + args)
         stdout, stderr = stdio
         output = stdout.getvalue()
         verbose = stderr.getvalue()
     # returns no error and data
     self.assertFalse(errorcode)
     self.assertEquals('key: %s\n' % self.test_key, verbose)
     self.assertEquals('myvalue\n', output)
Example #12
0
 def test_command_prev_verbose(self):
     # put something there
     self.client.put(self.test_key, 'myvalue')
     # try a short offset to value from command line
     args = '-vb prev %s~' % self.test_key
     with self.capture_stdio() as stdio:
         errorcode = cmd.main(self.conn_args + args)
         stdout, stderr = stdio
         output = stdout.getvalue()
         verbose = stderr.getvalue()
     # returns no error and data
     self.assertFalse(errorcode)
     self.assertEquals('key: %s\n' % self.test_key, verbose)
     self.assertEquals('myvalue\n', output)
Example #13
0
 def run_cmd(self, args):
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     return errorcode, output
Example #14
0
 def run_cmd(self, args):
     with self.capture_stdout() as stdout:
         errorcode = cmd.main(self.conn_args + args)
         output = stdout.getvalue()
     return errorcode, output