How to patch requests.get from a different file in pythonHow do I check whether a file exists without exceptions?How do I copy a file in Python?What is the difference between Python's list methods append and extend?How can I safely create a nested directory?How to get the current time in PythonHow can I make a time delay in Python?How do I concatenate two lists in Python?How do I list all files of a directory?How to read a file line-by-line into a list?How do you append to a file in Python?

The Planck constant for mathematicians

Do ibuprofen or paracetamol cause hearing loss?

Resume: How to quantify my contributions as a software engineer?

Do all humans have an identical nucleotide sequence for certain proteins, e.g haemoglobin?

I asked for a graduate student position from a professor. He replied "welcome". What does that mean?

Have there been any countries that voted themselves out of existence?

Do my friendships grow, even if I cannot progress the story?

Why island and not light?

How seriously should I take a CBP interview where I was told I have a red flag and could only stay for 30 days?

Why is the Digital 0 not 0V in computer systems?

Linear Programming with additional "if-then"/"Default to zero" constraints?

Telling my mother that I have anorexia without panicking her

Does a gnoll speak both Gnoll and Abyssal, or is Gnoll a dialect of Abyssal?

Should I leave the first authorship of our paper to the student who did the project whereas I solved it?

Is low emotional intelligence associated with right-wing and prejudiced attitudes?

Writing a love interest for my hero

Parallel resistance in electric circuits

A shy person in a queue

Can I disable a battery powered device by reversing half of its batteries?

Job offer without any details but asking me to withdraw other applications - is it normal?

Leaving out pronouns in informal conversation

Why would "an mule" be used instead of "a mule"?

How can a Scotland-NI bridge break Brexit impasse?

Align equations to start in the same position



How to patch requests.get from a different file in python


How do I check whether a file exists without exceptions?How do I copy a file in Python?What is the difference between Python's list methods append and extend?How can I safely create a nested directory?How to get the current time in PythonHow can I make a time delay in Python?How do I concatenate two lists in Python?How do I list all files of a directory?How to read a file line-by-line into a list?How do you append to a file in Python?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















I have 2 python files: 1 for unit testing (tests.py) and 1 for the script I want to test (main.py):



# In main.py:

import requests

def get_response(url):
response = requests.get(url);
# Do stuff...
return response


-



# In tests.py

from unittest import mock
from unittest.mock import patch
from my_project.main import get_response

def some_handler(url):
return "test_response"

class GetResponseTestCase(unittest.TestCase):

def setUp(self):

# setup mocks
patch('requests.get', mock.Mock(side_effect=some_handler)

def run_test(self):

result = get_response("test_response")


I want to patch requests.get to return test_response but the patching is not working because it tries to send a request/make a connection to the url supplied. I think the patch name requests.get is not targeting the place it is being used in main.py (as it is referring to where it is defined instead) as some people have mentioned online. But in this scenario I am not sure how to fix this.



If import requests is being used in main.py then how can I patch it from another file? Thanks.










share|improve this question






























    1















    I have 2 python files: 1 for unit testing (tests.py) and 1 for the script I want to test (main.py):



    # In main.py:

    import requests

    def get_response(url):
    response = requests.get(url);
    # Do stuff...
    return response


    -



    # In tests.py

    from unittest import mock
    from unittest.mock import patch
    from my_project.main import get_response

    def some_handler(url):
    return "test_response"

    class GetResponseTestCase(unittest.TestCase):

    def setUp(self):

    # setup mocks
    patch('requests.get', mock.Mock(side_effect=some_handler)

    def run_test(self):

    result = get_response("test_response")


    I want to patch requests.get to return test_response but the patching is not working because it tries to send a request/make a connection to the url supplied. I think the patch name requests.get is not targeting the place it is being used in main.py (as it is referring to where it is defined instead) as some people have mentioned online. But in this scenario I am not sure how to fix this.



    If import requests is being used in main.py then how can I patch it from another file? Thanks.










    share|improve this question


























      1












      1








      1








      I have 2 python files: 1 for unit testing (tests.py) and 1 for the script I want to test (main.py):



      # In main.py:

      import requests

      def get_response(url):
      response = requests.get(url);
      # Do stuff...
      return response


      -



      # In tests.py

      from unittest import mock
      from unittest.mock import patch
      from my_project.main import get_response

      def some_handler(url):
      return "test_response"

      class GetResponseTestCase(unittest.TestCase):

      def setUp(self):

      # setup mocks
      patch('requests.get', mock.Mock(side_effect=some_handler)

      def run_test(self):

      result = get_response("test_response")


      I want to patch requests.get to return test_response but the patching is not working because it tries to send a request/make a connection to the url supplied. I think the patch name requests.get is not targeting the place it is being used in main.py (as it is referring to where it is defined instead) as some people have mentioned online. But in this scenario I am not sure how to fix this.



      If import requests is being used in main.py then how can I patch it from another file? Thanks.










      share|improve this question














      I have 2 python files: 1 for unit testing (tests.py) and 1 for the script I want to test (main.py):



      # In main.py:

      import requests

      def get_response(url):
      response = requests.get(url);
      # Do stuff...
      return response


      -



      # In tests.py

      from unittest import mock
      from unittest.mock import patch
      from my_project.main import get_response

      def some_handler(url):
      return "test_response"

      class GetResponseTestCase(unittest.TestCase):

      def setUp(self):

      # setup mocks
      patch('requests.get', mock.Mock(side_effect=some_handler)

      def run_test(self):

      result = get_response("test_response")


      I want to patch requests.get to return test_response but the patching is not working because it tries to send a request/make a connection to the url supplied. I think the patch name requests.get is not targeting the place it is being used in main.py (as it is referring to where it is defined instead) as some people have mentioned online. But in this scenario I am not sure how to fix this.



      If import requests is being used in main.py then how can I patch it from another file? Thanks.







      python unit-testing mocking patch






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 28 at 9:46









      MayronMayron

      7752 gold badges11 silver badges27 bronze badges




      7752 gold badges11 silver badges27 bronze badges

























          2 Answers
          2






          active

          oldest

          votes


















          1
















          1. Mock get_reponse instead of mocking requests.get(mocking in-built functions;whi le being possible in python is not needed for such a simple usecase).

          2. Set return value of mocked get_response function to "test_response".

          In tests.py



          from unittest import mock

          class GetResponseTestCase(unittest.TestCase):

          @mock.patch("my_project.main.get_response") ##mocking get_response
          def run_test(self, mocked_get_response):
          mocked_get_response.return_value = "test_response" ## setting return value





          share|improve this answer
































            0
















            Found that I need to add .start() at the end of the call to creating the patch:



            # setup mocks
            patch('requests.get', mock.Mock(side_effect=some_handler).start()


            If there are any issues with this solution, or a better way for handling this, I would love to hear it!






            share|improve this answer



























              Your Answer






              StackExchange.ifUsing("editor", function ()
              StackExchange.using("externalEditor", function ()
              StackExchange.using("snippets", function ()
              StackExchange.snippets.init();
              );
              );
              , "code-snippets");

              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "1"
              ;
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function()
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled)
              StackExchange.using("snippets", function()
              createEditor();
              );

              else
              createEditor();

              );

              function createEditor()
              StackExchange.prepareEditor(
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              bindNavPrevention: true,
              postfix: "",
              imageUploader:
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              ,
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              );



              );














              draft saved

              draft discarded
















              StackExchange.ready(
              function ()
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55394496%2fhow-to-patch-requests-get-from-a-different-file-in-python%23new-answer', 'question_page');

              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              1
















              1. Mock get_reponse instead of mocking requests.get(mocking in-built functions;whi le being possible in python is not needed for such a simple usecase).

              2. Set return value of mocked get_response function to "test_response".

              In tests.py



              from unittest import mock

              class GetResponseTestCase(unittest.TestCase):

              @mock.patch("my_project.main.get_response") ##mocking get_response
              def run_test(self, mocked_get_response):
              mocked_get_response.return_value = "test_response" ## setting return value





              share|improve this answer





























                1
















                1. Mock get_reponse instead of mocking requests.get(mocking in-built functions;whi le being possible in python is not needed for such a simple usecase).

                2. Set return value of mocked get_response function to "test_response".

                In tests.py



                from unittest import mock

                class GetResponseTestCase(unittest.TestCase):

                @mock.patch("my_project.main.get_response") ##mocking get_response
                def run_test(self, mocked_get_response):
                mocked_get_response.return_value = "test_response" ## setting return value





                share|improve this answer



























                  1














                  1










                  1









                  1. Mock get_reponse instead of mocking requests.get(mocking in-built functions;whi le being possible in python is not needed for such a simple usecase).

                  2. Set return value of mocked get_response function to "test_response".

                  In tests.py



                  from unittest import mock

                  class GetResponseTestCase(unittest.TestCase):

                  @mock.patch("my_project.main.get_response") ##mocking get_response
                  def run_test(self, mocked_get_response):
                  mocked_get_response.return_value = "test_response" ## setting return value





                  share|improve this answer













                  1. Mock get_reponse instead of mocking requests.get(mocking in-built functions;whi le being possible in python is not needed for such a simple usecase).

                  2. Set return value of mocked get_response function to "test_response".

                  In tests.py



                  from unittest import mock

                  class GetResponseTestCase(unittest.TestCase):

                  @mock.patch("my_project.main.get_response") ##mocking get_response
                  def run_test(self, mocked_get_response):
                  mocked_get_response.return_value = "test_response" ## setting return value






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Mar 28 at 19:22









                  ashutosh singhashutosh singh

                  3407 bronze badges




                  3407 bronze badges


























                      0
















                      Found that I need to add .start() at the end of the call to creating the patch:



                      # setup mocks
                      patch('requests.get', mock.Mock(side_effect=some_handler).start()


                      If there are any issues with this solution, or a better way for handling this, I would love to hear it!






                      share|improve this answer





























                        0
















                        Found that I need to add .start() at the end of the call to creating the patch:



                        # setup mocks
                        patch('requests.get', mock.Mock(side_effect=some_handler).start()


                        If there are any issues with this solution, or a better way for handling this, I would love to hear it!






                        share|improve this answer



























                          0














                          0










                          0









                          Found that I need to add .start() at the end of the call to creating the patch:



                          # setup mocks
                          patch('requests.get', mock.Mock(side_effect=some_handler).start()


                          If there are any issues with this solution, or a better way for handling this, I would love to hear it!






                          share|improve this answer













                          Found that I need to add .start() at the end of the call to creating the patch:



                          # setup mocks
                          patch('requests.get', mock.Mock(side_effect=some_handler).start()


                          If there are any issues with this solution, or a better way for handling this, I would love to hear it!







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Mar 28 at 9:58









                          MayronMayron

                          7752 gold badges11 silver badges27 bronze badges




                          7752 gold badges11 silver badges27 bronze badges































                              draft saved

                              draft discarded















































                              Thanks for contributing an answer to Stack Overflow!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid


                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.

                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function ()
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55394496%2fhow-to-patch-requests-get-from-a-different-file-in-python%23new-answer', 'question_page');

                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

                              Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

                              Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript