1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
"""
Tests that the stem.version functions can handle the tor instance we're
running with.
"""
import unittest
import stem.prereq
import stem.version
import test.runner
class TestVersion(unittest.TestCase):
def test_get_system_tor_version(self):
"""
Basic verification checks for the get_system_tor_version() function.
"""
if not stem.util.system.is_available('tor'):
test.runner.skip(self, "(tor isn't in our path)")
return
# Since tor is in our path we should expect to be able to get the version
# that way, though this might not belong to our test instance (if we're
# running against a specific tor binary).
stem.version.get_system_tor_version()
# try running against a command that exists, but isn't tor
self.assertRaises(IOError, stem.version.get_system_tor_version, 'ls')
# try running against a command that doesn't exist
self.assertRaises(IOError, stem.version.get_system_tor_version, 'blarg')
def test_get_system_tor_version_value(self):
"""
Checks that the get_system_tor_version() provides the same value as our
test instance provides.
"""
if test.runner.require_control(self):
return
runner = test.runner.get_runner()
system_tor_version = stem.version.get_system_tor_version(runner.get_tor_command())
self.assertEquals(runner.get_tor_version(), system_tor_version)
def test_getinfo_version_parsing(self):
"""
Issues a 'GETINFO version' query to our test instance and makes sure that
we can parse it.
"""
if test.runner.require_control(self):
return
control_socket = test.runner.get_runner().get_tor_socket()
control_socket.send('GETINFO version')
version_response = control_socket.recv()
control_socket.close()
# the getinfo response looks like...
# 250-version=0.2.3.10-alpha-dev (git-65420e4cb5edcd02)
# 250 OK
tor_version = list(version_response)[0]
tor_version = tor_version[8:tor_version.find(' ', 8)]
stem.version.Version(tor_version)
|