Best Python code snippet using unittest-xml-reporting_python
test_utils.py
Source:test_utils.py
1import datetime2import hashlib3import os4import pkg_resources5import shutil6import sys7import tempfile8from nose.tools import assert_equals9from onionperf import util10def absolute_data_path(relative_path=""):11 """12 Returns an absolute path for test data given a relative path.13 """14 return pkg_resources.resource_filename("onionperf",15 "tests/data/" +16 relative_path)17DATA_DIR = absolute_data_path()18def test_make_dir():19 """20 Creates a temporary working directory, and then a directory within it.21 The second directory is created using util.make_dir_path.22 Ensures that the path exists, is a directory and is not a symbolic link.23 Removes the temporary working directory only if successful.24 """25 work_dir = tempfile.mkdtemp()26 test_path = os.path.join(work_dir, "test")27 util.make_dir_path(test_path)28 assert(os.path.exists(test_path))29 assert(os.path.isdir(test_path))30 assert(not os.path.islink(test_path))31 shutil.rmtree(work_dir)32def test_find_file_paths():33 """34 Uses util.find_file_paths to find an existing file in the test data directory, given a pattern.35 The function returns the full path to the file.36 """37 pattern = ["abcdef"] 38 paths = util.find_file_paths(DATA_DIR, pattern)39 print(paths)40 assert_equals(paths, [absolute_data_path("dirs/abcdefg.txt")])41 42def test_find_file_paths_with_dash():43 """44 Uses util.find_file_paths to find an existing file in the test data directory, given a45 pattern. Ensures the path returned by the function defaults to stdin if there46 is a dash detected at the end of the given directory.47 """48 pattern = ["abcdef"] 49 paths = util.find_file_paths(DATA_DIR + "/-", pattern)50 assert_equals(paths, ['-'])51 52#def test_find_file_paths_pairs():53# """54# Uses util.find_file_paths_pairs to find existing files in the test data55# directory matching either of two given patterns.56# it returns tuples consisting of a list containing matching file and an empty list.57# The position of the empty lists is dependent on which pattern was matched.58# If a file matches the first pattern, the second item in the tuple will be empty.59# If a file matches the second pattern, the first item in the tuple will be empty.60# """61# first_pattern = ['.*tgen\.log']62# second_pattern = ['.*torctl\.log']63# paths = util.find_file_paths_pairs(DATA_DIR, first_pattern, second_pattern)64# assert_equals(paths, [65# ([], [absolute_data_path("logs/onionperf20190101.torctl.log")]),66# ([], [absolute_data_path("logs/onionperf.torctl.log")]),67# ([absolute_data_path("logs/onionperf.tgen.log")], []),68# ([absolute_data_path("logs/onionperf20190101.tgen.log")], [])69# ])70def test_find_path_with_binpath():71 """72 Creates a temporary named file, uses util.find_path with a filename to find its73 full path and then compares is to that returned by the tempfile function.74 Removes the created named temporary file only if successful.75 """76 temp_file = tempfile.NamedTemporaryFile()77 work_path = util.find_path(temp_file.name, temp_file.name)78 assert_equals(work_path, temp_file.name)79 temp_file.close()80def test_find_path_with_which():81 """82 Creates a temporary named file, and makes it executable.83 Uses util.find_path with a name and search path to find its full84 path, and then compares is to that returned by the tempfile function. Removes85 the created named temporary file only if successful.86 """87 temp_file = tempfile.NamedTemporaryFile()88 os.chmod(temp_file.name, 0o775)89 work_path = util.find_path(None, temp_file.name, tempfile.tempdir)90 assert_equals(work_path, temp_file.name)91 temp_file.close()92def test_is_exe():93 """94 Uses util.is_exe to test if paths point to executable files.95 Checks an executable file path is accepted 96 Checks a non-executable file path is not accepted97 Checks a directory path is not accepted98 """99 assert(util.is_exe(absolute_data_path("bin/script")))100 assert(not util.is_exe(absolute_data_path("bin/script_no_exe")))101 assert(not util.is_exe(absolute_data_path("bin/")))102def test_which():103 """104 Uses util.which with an executable file and a search path in the test data105 directory. Checks the full path of the file is identified.106 """107 test_binary = util.which("script", search_path=absolute_data_path("bin/"))108 assert_equals(test_binary, absolute_data_path("bin/script"))109def test_which_not_executable():110 """111 Uses util.which to test an non-executable file 112 in the test data directory. Checks the non-executable file is not 113 identified as a program to run.114 """115 test_binary = util.which(116 "script_non_exe", search_path=absolute_data_path("bin/"))117 assert_equals(test_binary, None)118def test_which_full_path():119 """120 Uses util.which with the full path of an executable file and a 121 search path. 122 Checks the full path of the file is identified.123 """124 test_binary = util.which(125 absolute_data_path("bin/script"),126 search_path=absolute_data_path("bin/"))127 assert_equals(test_binary, absolute_data_path("bin/script"))128def test_date_to_string():129 """130 Uses util.date_to_string with a datetime object.131 Returns a correctly formatted string.132 """133 date_object = datetime.datetime(2018, 11, 27, 11)134 date_string = util.date_to_string(date_object)135 assert_equals(date_string, "2018-11-27")136def test_date_to_string_is_none():137 """138 Uses util.date_to_string with a None object.139 Returns an empty string.140 """141 date_string = util.date_to_string(None)142 assert_equals(date_string, "")143def test_dates_match():144 """145 Uses util.dates_match with two matching datetime objects.146 """147 first_date = datetime.datetime(2018, 11, 27, 10)148 second_date = datetime.datetime(2018, 11, 27, 11)149 assert(util.do_dates_match(first_date, second_date))150def test_dates_match_false():151 """152 Uses util.dates_match with two non-matching datetime objects.153 """154 first_date = datetime.datetime(2018, 11, 27, 10)155 second_date = datetime.datetime(2016, 11, 27, 11)156 assert_equals(util.do_dates_match(first_date, second_date), False)157def test_find_ip_address_url():158 """159 Uses util.find_ip_address_url with a string containing an IPv4 address.160 The ip address is returned as a string.161 """162 ip_address = util.find_ip_address_url("Your IP address appears to be: 70.70.70.70")163 assert_equals(ip_address, "70.70.70.70")164def test_find_ip_address_url_none():165 """166 Uses util.find_ip_address_url with a string containing no IPv4 address.167 This should return None.168 """169 ip_address = util.find_ip_address_url("Your IP address appears to be")170 assert_equals(ip_address, None)171def test_get_random_free_port():172 """173 Uses util.get_random_free_port to get a port number.174 Asserts the port exists, and it is a high-numbered port175 between 10000 and 60000.176 """ 177 port = util.get_random_free_port()178 assert(port is not None)179 assert(port < 60000)180 assert(port >= 10000)181def test_data_source_stdin():182 """183 Creates a new util.DataSource object with stdin input. When calling184 util.DataSource.open(), this should set stdin as the DataSource.source185 for this object.186 """187 test_data_source = util.DataSource("-")188 test_data_source.open()189 assert_equals(test_data_source.source, sys.stdin)190def test_data_source_file():191 """192 Creates a new util.DataSource object with an uncompressed input file. When calling193 util.DataSource.open(), this should set the file handle as the DataSource.source194 for this object. 195 DataSouce.source is verified against the contents of the input file.196 """197 test_data_source = util.DataSource(absolute_data_path("simplefile"))198 test_data_source.open()199 data_source_file_handle = test_data_source.source200 data_source_contents = data_source_file_handle.read()201 assert_equals(data_source_contents, "onionperf")202def test_data_source_compressed_file():203 """204 Creates a new util.DataSource object with a compressed input file. When205 calling util.DataSource.open(), this should set the output of an xzprocess (an206 uncompressed file handle) as the DataSource.source for this object, and set207 DataSource.compress to True. 208 Verifies DataSource.compress is set to True. 209 DataSouce.source is verified against the contents of the input file.210 """211 test_data_source = util.DataSource(absolute_data_path("simplefile.xz"))212 test_data_source.open()213 data_source_file_handle = test_data_source.source214 data_source_contents = data_source_file_handle.read()215 assert_equals(data_source_contents, "onionperf")216 assert(test_data_source.compress)217def test_file_writable():218 """219 Creates a new util.FileWritable object using a temporary filename.220 Writes a string to it using util.FileWritable.write(). 221 The checksum of this file is compared to a good known checksum. 222 The temporary file is only removed if the test is successful.223 """224 temp_file = tempfile.NamedTemporaryFile()225 test_writable = util.FileWritable(temp_file.name)226 test_writable.write("onionperf")227 test_writable.close()228 expected_checksum = "5001ed4ab25b52543946fa63da829d4eeab1bd254c89ffdad0877186e074b385"229 with open(temp_file.name, 'rb') as f:230 file_bytes = f.read()231 file_checksum = hashlib.sha256(file_bytes).hexdigest()232 assert_equals(file_checksum, expected_checksum)233 temp_file.close()234def test_file_writable_compressed():235 """236 Creates a new util.FileWritable object using a temporary filename and237 compression. Writes a string to it using util.FileWritable.write(). 238 The checksum of this file is compared to a good known checksum. 239 The temporary file is only removed if the test is successful.240 """241 temp_file = tempfile.NamedTemporaryFile(suffix=".xz")242 test_writable = util.FileWritable(temp_file.name, True)243 test_writable.write("onionperf")244 test_writable.close()245 expected_checksum = "3556b3bee6bb56d0a42676cbbf5784ebe4151fe65b0797f42260f93212e2df11"246 with open(temp_file.name, 'rb') as f:247 file_bytes = f.read()248 file_checksum = hashlib.sha256(file_bytes).hexdigest()249 assert_equals(file_checksum, expected_checksum)250 temp_file.close()251def test_file_writable_with_stout():252 """253 Creates a new util.FileWritable object using stdout.254 Checks the util.FileWritable.file attribute is set to stdout.255 """256 test_writable = util.FileWritable("-")257 assert_equals(test_writable.file, sys.stdout)258def test_file_writable_rotate_file():259 """260 Creates a temporary working directory.261 Creates a new util.FileWritable object in the working directory.262 Rotates file using util.FileWritable.rotate_file with a fixed date and time.263 Checks path log_archive has been created in the working directory.264 Checks path log_archive is a directory.265 Checks file with the appropiate name has been rotated in the log_archive directory.266 Removes working directory only if successful.267 """268 work_dir = tempfile.mkdtemp()269 test_writable = util.FileWritable(os.path.join(work_dir, "logfile"))270 test_writable.write("onionperf")271 test_writable.rotate_file(datetime.datetime(2018, 11, 27, 0, 0, 0))272 created_dir = os.path.join(work_dir, "log_archive")273 rotated_file = os.path.join(created_dir, "logfile_2018-11-27_00:00:00.gz")274 assert(os.path.exists(created_dir))275 assert(os.path.isdir(created_dir))276 assert(os.path.exists(rotated_file))...
test_sinks.py
Source:test_sinks.py
...27 self.fileobj.push(self.filter)28 self.bio = self.fileobj.c_bio29 def test_readable(self):30 self.assertTrue(self.fileobj.readable())31 def test_writable(self):32 self.assertFalse(self.fileobj.writable())33class TestFileWrite(TestChainWrite):34 @classmethod35 def setUpClass(cls):36 fd, cls.filename = tempfile.mkstemp()37 os.close(fd)38 @classmethod39 def tearDownClass(cls):40 os.remove(cls.filename)41 def setUp(self):42 self.fileobj = io.BIOFile(self.filename, 'w')43 self.filter = api.BIO_new(api.BIO_f_null())44 self.sink = self.fileobj.c_bio45 self.fileobj.push(self.filter)46 self.bio = self.fileobj.c_bio47 def test_readable(self):48 self.assertFalse(self.fileobj.readable())49 def test_writable(self):50 self.assertTrue(self.fileobj.writable())51class TestFileBio(unittest.TestCase):52 @mock.patch('tls.err.logger')53 def test_invalid_filename(self, _):54 self.assertRaises(IOError, io.BIOFile, '_not_a_file', 'r')55 def test_invalid_mode(self):56 self.assertRaises(ValueError, io.BIOFile, '', 'x')57class TestMemBufferWrite(TestChainWrite):58 def setUp(self):59 self.fileobj = io.BIOMemBuffer()60 self.filter = api.BIO_new(api.BIO_f_null())61 self.sink = self.fileobj.c_bio62 self.fileobj.push(self.filter)63 self.bio = self.fileobj.c_bio64class TestMemBufferRead(TestChainRead):65 def setUp(self):66 self.fileobj = io.BIOMemBuffer(self.DATA)67 self.filter = api.BIO_new(api.BIO_f_null())68 self.sink = self.fileobj.c_bio69 self.fileobj.push(self.filter)70 self.bio = self.fileobj.c_bio71 def test_writable(self):72 self.assertFalse(self.fileobj.writable())73class TestNullBio(ChainTest, unittest.TestCase):74 def setUp(self):75 self.fileobj = io.BIONull()76 self.filter = api.BIO_new(api.BIO_f_null())77 self.sink = self.fileobj.c_bio78 self.fileobj.push(self.filter)79 self.bio = self.fileobj.c_bio80 def tearDown(self):81 if self.fileobj.c_bio is not api.NULL:...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!