Giter Club home page Giter Club logo

Comments (7)

danielchatfield avatar danielchatfield commented on August 28, 2024

👎

That is not very pythonic.

Why do you need to stub the API requests when testing the integration at all? That is what test keys are for.

from stripe-python.

stas avatar stas commented on August 28, 2024

@danielchatfield might be, I can't say I'm an expert in what software is pythonic/non-pythonic. All I'm concerned of is the fact that I don't want to hit HTTP during my tests and I don't want to return mocks of the mocks while trying to avoid that.

This is more like an open discussion and I would be happy to see a solution that doesn't involve changing existing interface and answers my questions.
Thanks.

from stripe-python.

danielchatfield avatar danielchatfield commented on August 28, 2024

Could you show an example of the sort of tests you are talking about
(trying to get an idea of what you are trying to test).

On Thursday, 22 May 2014, Stas Sușcov [email protected] wrote:

@danielchatfield https://github.com/danielchatfield might be, I can't
say I'm an expert in what software is pythonic/non-pythonic. All I'm
concerned of is the fact that I don't want to hit HTTP during my tests and
I don't want to return mocks of the mocks while trying to avoid that.

This is more like an open discussion and I would be happy to see a
solution that doesn't involve changing existing interface and answers my
questions.
Thanks.


Reply to this email directly or view it on GitHubhttps://github.com//issues/79#issuecomment-43877866
.

For contact info visit: www.danielchatfield.com

from stripe-python.

metcalf avatar metcalf commented on August 28, 2024

One thing I've been considering is to support more dependency injection in the API. In that case, you would provide your own implementation of the HTTPClient that stubs out any requests. I think this would also solve issues like #38 and #23.

For the time being, can you just stub out stripe.http_client.new_default_http_client to return your own stubbed client?

from stripe-python.

danielchatfield avatar danielchatfield commented on August 28, 2024

👍

APIRequestor supports the passing of a client parameter but this isn't
used outside of the unit tests.

On 22 May 2014 16:13, Andrew Metcalf [email protected] wrote:

One thing I've been considering is to support more dependency injection in
the API. In that case, you would provide your own implementation of the
HTTPClient that stubs out any requests. I think this would also solve
issues like #38 #38 and #23#23
.

For the time being, can you just stub out
stripe.http_client.new_default_http_client to return your own stubbed
client?


Reply to this email directly or view it on GitHubhttps://github.com//issues/79#issuecomment-43901537
.

For contact info visit: www.danielchatfield.com

from stripe-python.

stas avatar stas commented on August 28, 2024

Thanks @metcalf.

Dependency injection sounds good if you care what happens in between the call and the response. I don't think most do.
I'm looking for a solution where I can mock with an expectation the Customer.cards.create method.
Right now I need to mock the customer, its cards and finally the create method.

Normally I would just mock Customer.create_card method.
Does it make sense?

from stripe-python.

metcalf avatar metcalf commented on August 28, 2024

I understand what you're getting at. I think the right answer is to either mock all of those things or stub out APIRequestor altogether. I think the customer.cards namespacing is clearer for most use cases and is consistent with our other Python bindings. If it's just a question of an additional mocking step, I think this is WONTFIX.

from stripe-python.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.