How to use test_request method in gabbi

Best Python code snippet using gabbi_python

test_blocks_request.py

Source: test_blocks_request.py Github

copy

Full Screen

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:...

Full Screen

Full Screen

file_server_test.py

Source: file_server_test.py Github

copy

Full Screen

...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')...

Full Screen

Full Screen

Blogs

Check out the latest blogs from LambdaTest on this topic:

Pair testing strategy in an Agile environment

Pair testing can help you complete your testing tasks faster and with higher quality. But who can do pair testing, and when should it be done? And what form of pair testing is best for your circumstance? Check out this blog for more information on how to conduct pair testing to optimize its benefits.

Migrating Test Automation Suite To Cypress 10

There are times when developers get stuck with a problem that has to do with version changes. Trying to run the code or test without upgrading the package can result in unexpected errors.

Continuous Integration explained with jenkins deployment

Continuous integration is a coding philosophy and set of practices that encourage development teams to make small code changes and check them into a version control repository regularly. Most modern applications necessitate the development of code across multiple platforms and tools, so teams require a consistent mechanism for integrating and validating changes. Continuous integration creates an automated way for developers to build, package, and test their applications. A consistent integration process encourages developers to commit code changes more frequently, resulting in improved collaboration and code quality.

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run gabbi automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful