Comments (7)
👎
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.
@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.
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.
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.
👍
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.
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.
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)
- Official Python docs out of date HOT 3
- AttributeError: service_agreement HOT 14
- AttributeError: 'CustomerService' object has no attribute 'modify' with StripeClient HOT 1
- Incorrect annotation on `ErrorOrbject.code` HOT 3
- Unable to remove metadata from PaymentIntent.modify HOT 2
- Missing `convert_to_dict` export HOT 3
- Typing issue: `CreateParams` for `StripeObject`s should allow for Optional values HOT 3
- `HTTPXClient` `allow_sync_requests` != `allow_sync_methods` HOT 1
- Quote PDF endpoint does not work HOT 4
- Typing issue: additional_verifications missing in `stripe.Account.CreateParams` HOT 1
- Create a type alias for `stripe.TaxId.type` and others HOT 3
- unknown parameter: stripe_acccount when creating subscription for a connected account HOT 2
- calling stripe.treasury.Transaction.list Method raises Unrecognized request URL exception HOT 1
- OSS-Fuzz Integration HOT 1
- There doesn't seem to be a way of robustly relying on library's types for API responses HOT 2
- Expading list-items doesn't work with retrieve_async HOT 2
- Ability to query for previous API requests HOT 1
- Can't expand invoice from quote HOT 2
- TaxRate.list does not return any TaxRates, even when I can look them up with TaxRate.retrieve HOT 1
- Webhook "Unable to connect" even though it connects successfully
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stripe-python.