Best Python code snippet using molotov_python
test_blocks_request.py
Source:test_blocks_request.py
1from fuzzowski import constants2from fuzzowski.mutants.spike import *3import hashlib4import pytest5def test_request_spike():6 s_initialize('request_test_complex')7 with s_block('b0'):8 with s_block('b1'):9 s_string(b'str1', name='str1')10 s_static(b' ')11 s_checksum('b1', algorithm='md5', output_format='hex', name='md5_b1')12 s_delim(b':')13 s_size('b0', inclusive=True, output_format='binary', length=4, endian=constants.BIG_ENDIAN)14 s_byte(b'\xff')15 s_static(b'.')16 s_variable('var1', b'NOTSET')17 s_repeat('b0', min_reps=0, max_reps=2)18 request = s_get('request_test_complex')19 b1_rendered = (b'str1 '20 + hashlib.md5(b'str1 ').digest().hex().encode('utf-8')21 + b':')22 assert request.render() == (b1_rendered23 + b'\x00\x00\x00\x2a'24 + b'\xff'25 + b'.'26 + b'NOTSET')27 request.goto(request.num_mutations) # last mutation28 assert request.render() == (b1_rendered29 + b'\x00\x00\x00\x2a'30 + b'\xff'31 + b'.'32 + b'NOTSET'33 + b1_rendered * 2)34 request.reset()35 request.variables['var1'] = b'SET!!!'36 assert request.render() == (b1_rendered37 + b'\x00\x00\x00\x2a'38 + b'\xff'39 + b'.'40 + b'SET!!!')41def test_request_reset():42 s_initialize('request_test_simple')43 s_mutant(b'A', name='mutant21', mutations=[b'B', b'C', b'D'])44 s_mutant(b'W', name='mutant22', mutations=[b'X', b'Y', b'Z'])45 test_request = s_get('request_test_simple')46 assert test_request.render() == b'AW'47 assert test_request.mutant_index == 048 assert next(test_request) == b'BW' == test_request.render()49 assert test_request.mutant_index == 150 assert next(test_request) == b'CW' == test_request.render()51 assert test_request.mutant_index == 252 assert test_request.mutant.name == 'mutant21'53 assert next(test_request) == b'DW' == test_request.render()54 assert test_request.mutant_index == 355 assert test_request.mutant.name == 'mutant21'56 assert next(test_request) == b'AX' == test_request.render()57 assert test_request.mutant_index == 458 assert test_request.mutant.name == 'mutant22'59 assert next(test_request) == b'AY' == test_request.render()60 assert test_request.mutant_index == 561 assert next(test_request) == b'AZ' == test_request.render()62 assert test_request.mutant_index == 663 assert test_request.mutant.name == 'mutant22'64 with pytest.raises(StopIteration):65 next(test_request)66 assert test_request.mutant_index == 067 assert test_request.render() == b'AW'68 assert test_request.mutant is None69 assert next(test_request) == b'BW' == test_request.render()70 assert test_request.mutant_index == 171 assert test_request.mutant.name == 'mutant21'72 test_request.reset()73 assert test_request.mutant_index == 074 assert test_request.render() == b'AW'75 assert test_request.mutant is None76 assert next(test_request) == b'BW' == test_request.render()77 assert test_request.mutant_index == 178 assert test_request.mutant.name == 'mutant21'79def test_request_goto():80 s_initialize('request_test_simple2')81 s_mutant(b'A', name='mutant21', mutations=[b'B', b'C', b'D'])82 s_mutant(b'W', name='mutant22', mutations=[b'X', b'Y', b'Z'])83 test_request = s_get('request_test_simple2')84 assert test_request.render() == b'AW'85 assert test_request.mutant_index == 086 assert next(test_request) == b'BW' == test_request.render()87 assert test_request.mutant_index == 188 assert next(test_request) == b'CW' == test_request.render()89 assert test_request.mutant_index == 290 assert test_request.mutant.name == 'mutant21'91 assert next(test_request) == b'DW' == test_request.render()92 assert test_request.mutant_index == 393 assert test_request.mutant.name == 'mutant21'94 assert next(test_request) == b'AX' == test_request.render()95 assert test_request.mutant_index == 496 assert test_request.mutant.name == 'mutant22'97 assert next(test_request) == b'AY' == test_request.render()98 assert test_request.mutant_index == 599 assert next(test_request) == b'AZ' == test_request.render()100 assert test_request.mutant_index == 6101 assert test_request.mutant.name == 'mutant22'102 with pytest.raises(StopIteration):103 next(test_request)104 assert test_request.mutant_index == 0105 assert test_request.render() == b'AW'106 assert test_request.mutant is None107 assert next(test_request) == b'BW' == test_request.render()108 assert test_request.mutant_index == 1109 assert test_request.mutant.name == 'mutant21'110 test_request.reset()111 assert test_request.mutant_index == 0112 assert test_request.render() == b'AW'113 assert test_request.mutant is None114 assert next(test_request) == b'BW' == test_request.render()115 assert test_request.mutant_index == 1116 assert test_request.mutant.name == 'mutant21'117def test_request_movements():118 s_initialize('request_test_complex2')119 with s_block('b0'):120 with s_block('b1'):121 s_string(b'str1', name='str1')122 s_static(b' ')123 s_checksum('b1', algorithm='md5', output_format='hex', name='md5_b1')124 s_delim(b':')125 s_size('b0', inclusive=True, output_format='binary', length=4, endian=constants.BIG_ENDIAN)126 s_byte(b'\xff')127 s_static(b'.')128 s_variable('var1', b'NOTSET')129 s_repeat('b0', min_reps=0, max_reps=2)130 request = s_get('request_test_complex2')131 i=0132 for mutation in request:133 i+=1134 assert request.mutant_index == i135 assert request.mutant.mutant_index != 0136 for item in request.stack:137 if item != request.mutant:138 if not isinstance(item, blocks.Block):139 assert item.mutant_index == 0140 else:141 assert item.mutant_index != 0142 for item in request.stack:...
file_server_test.py
Source:file_server_test.py
...16 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);17 s.connect(('localhost',8080));18 s.setsockopt(socket.IPPROTO_TCP,socket.TCP_NODELAY,1)19 return s;20def test_request(url,status,content='ignore',valid=[],notvalid=[]):21 print "-- Testing %s" % url22 s=make_sock();23 s.send('GET %s HTTP/1.0\r\n\r\n' % url);24 text = ''25 while 1:26 tmp = s.recv(1000);27 if len(tmp) == 0:28 break;29 text = text + tmp;30 exp = 'HTTP/1.0 ' + str(status) + ' '31 test(text[:len(exp)]==exp)32 parts = text.split('\r\n\r\n');33 real_content = ''34 if len(parts)>=2:35 real_content = parts[1]36 if content != 'ignore':37 test(real_content == content + '\n')38 for v in valid:39 test(real_content.find(v) >= 0)40 for v in notvalid:41 test(real_content.find(v) == -1)42do_listing = False 43if len(sys.argv) == 2:44 do_listing = sys.argv[1] == 'listing'45print "- Testing normal requests"46if not do_listing:47 test_request('/',404)48else:49 test_request('/',200,valid=['foo/','bar/','test.txt'],notvalid=['..','test.txt/','.svn'])50 51test_request('/test.txt',200,'/test.txt')52test_request('/foo/test.txt',200,'/foo/test.txt')53test_request('/bar/test.txt',200,'/bar/test.txt')54test_request('/bar/index.html',200,'/bar/index.html')55test_request('/bar/',200,'/bar/index.html')56test_request('/bar',302)57if not do_listing:58 test_request('/foo',404)59 test_request('/foo/',404)60else:61 test_request('/foo',302)62 test_request('/foo/',200,valid=['..','ooooooong_fiiiiii']);63test_request('/file+with+space.txt',200,'file with space')64test_request('/file%20with%20space.txt',200,'file with space')65print "- Testing alias"66test_request('/alias',302)67test_request('/alias/',200,'/al/index.html')68test_request('/alias/test.txt',200,'/al/test.txt')69test_request('/alias/foo/test.txt',200,'/al/foo/test.txt')70if os.name == 'posix':71 print "- Testing symlinks"72 test_request('/no.txt',404)73 test_request('/yes.txt',200,'/yes')74print "- Testing directory traversal"75test_request('/foo/../bar/test.txt',200,'/bar/test.txt')76test_request('/../al/test.txt','404')77test_request('/../never.txt','404')78test_request('/../www/test.txt','404')79test_request('/../wwwfile.txt','404')80test_request('/aliasfile.txt',404)81test_request('/../alias/never.txt','404')82test_request('/%2e%2e/never.txt','404')...
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!!