Best Python code snippet using httmock_python
tests.py
Source:tests.py  
...12@urlmatch(method='post')13def unmatched_method(url, request):14    raise AssertionError('This is outrageous')15@urlmatch(netloc=r'(.*\.)?google\.com$', path=r'^/$')16def google_mock(url, request):17    return 'Hello from Google'18@urlmatch(netloc=r'(.*\.)?google\.com$', path=r'^/$')19@remember_called20def google_mock_count(url, request):21    return 'Hello from Google'22@urlmatch(scheme='http', netloc=r'(.*\.)?facebook\.com$')23def facebook_mock(url, request):24    return 'Hello from Facebook'25@urlmatch(scheme='http', netloc=r'(.*\.)?facebook\.com$')26@remember_called27def facebook_mock_count(url, request):28    return 'Hello from Facebook'29@urlmatch(netloc=r'(.*\.)?google\.com$', path=r'^/$', method='POST')30@remember_called31def google_mock_store_requests(url, request):32    return 'Posting at Google'33@all_requests34def charset_utf8(url, request):35    return {36        'content': u'Motörhead'.encode('utf-8'),37        'status_code': 200,38        'headers': {39            'Content-Type': 'text/plain; charset=utf-8'40        }41    }42def any_mock(url, request):43    return 'Hello from %s' % (url.netloc,)44def dict_any_mock(url, request):45    return {46        'content': 'Hello from %s' % (url.netloc,),47        'status_code': 200,48        'http_vsn': 10,49    }50def example_400_response(url, response):51    r = requests.Response()52    r.status_code = 40053    r._content = b'Bad request.'54    return r55class MockTest(unittest.TestCase):56    def test_return_type(self):57        with HTTMock(any_mock):58            r = requests.get('http://domain.com/')59        self.assertTrue(isinstance(r, requests.Response))60        self.assertTrue(isinstance(r.content, binary_type))61        self.assertTrue(isinstance(r.text, text_type))62    def test_scheme_fallback(self):63        with HTTMock(unmatched_scheme, any_mock):64            r = requests.get('http://example.com/')65        self.assertEqual(r.content, b'Hello from example.com')66    def test_path_fallback(self):67        with HTTMock(unmatched_path, any_mock):68            r = requests.get('http://example.com/')69        self.assertEqual(r.content, b'Hello from example.com')70    def test_method_fallback(self):71        with HTTMock(unmatched_method, any_mock):72            r = requests.get('http://example.com/')73        self.assertEqual(r.content, b'Hello from example.com')74    def test_netloc_fallback(self):75        with HTTMock(google_mock, facebook_mock):76            r = requests.get('http://google.com/')77        self.assertEqual(r.content, b'Hello from Google')78        with HTTMock(google_mock, facebook_mock):79            r = requests.get('http://facebook.com/')80        self.assertEqual(r.content, b'Hello from Facebook')81    def test_400_response(self):82        with HTTMock(example_400_response):83            r = requests.get('http://example.com/')84        self.assertEqual(r.status_code, 400)85        self.assertEqual(r.content, b'Bad request.')86    def test_real_request_fallback(self):87        with HTTMock(any_mock):88            with HTTMock(google_mock, facebook_mock):89                r = requests.get('http://example.com/')90        self.assertEqual(r.status_code, 200)91        self.assertEqual(r.content, b'Hello from example.com')92    def test_invalid_intercept_response_raises_value_error(self):93        @all_requests94        def response_content(url, request):95            return -196        with HTTMock(response_content):97            self.assertRaises(TypeError, requests.get, 'http://example.com/')98    def test_encoding_from_contenttype(self):99        with HTTMock(charset_utf8):100            r = requests.get('http://example.com/')101        self.assertEqual(r.encoding, 'utf-8')102        self.assertEqual(r.text, u'Motörhead')103        self.assertEqual(r.content, r.text.encode('utf-8'))104    def test_has_raw_version(self):105        with HTTMock(any_mock):106            r = requests.get('http://example.com')107        self.assertEqual(r.raw.version, 11)108        with HTTMock(dict_any_mock):109            r = requests.get('http://example.com')110        self.assertEqual(r.raw.version, 10)111class DecoratorTest(unittest.TestCase):112    @with_httmock(any_mock)113    def test_decorator(self):114        r = requests.get('http://example.com/')115        self.assertEqual(r.content, b'Hello from example.com')116    @with_httmock(any_mock)117    def test_iter_lines(self):118        r = requests.get('http://example.com/')119        self.assertEqual(list(r.iter_lines()),120                         [b'Hello from example.com'])121class AllRequestsDecoratorTest(unittest.TestCase):122    def test_all_requests_response(self):123        @all_requests124        def response_content(url, request):125            return {'status_code': 200, 'content': 'Oh hai'}126        with HTTMock(response_content):127            r = requests.get('https://example.com/')128        self.assertEqual(r.status_code, 200)129        self.assertEqual(r.content, b'Oh hai')130    def test_all_str_response(self):131        @all_requests132        def response_content(url, request):133            return 'Hello'134        with HTTMock(response_content):135            r = requests.get('https://example.com/')136        self.assertEqual(r.content, b'Hello')137class AllRequestsMethodDecoratorTest(unittest.TestCase):138    @all_requests139    def response_content(self, url, request):140        return {'status_code': 200, 'content': 'Oh hai'}141    def test_all_requests_response(self):142        with HTTMock(self.response_content):143            r = requests.get('https://example.com/')144        self.assertEqual(r.status_code, 200)145        self.assertEqual(r.content, b'Oh hai')146    @all_requests147    def string_response_content(self, url, request):148        return 'Hello'149    def test_all_str_response(self):150        with HTTMock(self.string_response_content):151            r = requests.get('https://example.com/')152        self.assertEqual(r.content, b'Hello')153class UrlMatchMethodDecoratorTest(unittest.TestCase):154    @urlmatch(netloc=r'(.*\.)?google\.com$', path=r'^/$')155    def google_mock(self, url, request):156        return 'Hello from Google'157    @urlmatch(scheme='http', netloc=r'(.*\.)?facebook\.com$')158    def facebook_mock(self, url, request):159        return 'Hello from Facebook'160    @urlmatch(query=r'.*page=test')161    def query_page_mock(self, url, request):162        return 'Hello from test page'163    def test_netloc_fallback(self):164        with HTTMock(self.google_mock, facebook_mock):165            r = requests.get('http://google.com/')166        self.assertEqual(r.content, b'Hello from Google')167        with HTTMock(self.google_mock, facebook_mock):168            r = requests.get('http://facebook.com/')169        self.assertEqual(r.content, b'Hello from Facebook')...test_mail_service.py
Source:test_mail_service.py  
1import unittest2from unittest.mock import patch3from app.service import mail_service4@patch.object(mail_service, 'google', autospec=True)5class TestMailService(unittest.TestCase):6    def test_send_mail(self, google_mock):7        to = "to"8        subject = "subject"9        template = "sometemplate"10        template_kwargs = dict(a=1, b=2, c=3)11        mail_service.send_mail(to=to, subject=subject,12                               email_template=template, **template_kwargs)13        google_mock.send_email.assert_called_once_with(...mocktest1.py
Source:mocktest1.py  
1from httmock import urlmatch, HTTMock2import requests3@urlmatch(netloc=r'(.*\.)?google\.com$')4def google_mock(url, request):5    return 'Feeling lucky, punk?'6with HTTMock(google_mock):7    r = requests.get('http://google.com/')...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!!
