Commit Graph

44 Commits

Author SHA1 Message Date
Erik Sundell
c8c7418ed2 pyupgrade: run pyupgrade --py36-plus and black on jupyterhub/tests 2021-08-26 16:05:18 +02:00
YuviPanda
ab751bda5c Accomodate for host based routing 2021-04-19 16:26:09 +05:30
YuviPanda
3ec3dc5195 Support Proxy.extra_routes
When the hub is running in API-only mode, it's
very useful to have the proxy know where to send
URLs that would normally be serviced by the hub.
For example, / might go to a service that renders
a home page, while `/user` might go to a service that
tells the user their server is dead.

Right now, this happens 'out of band', with a process
that has to talk to the proxy directly. This is a
bit messy - the routes need to be re-added when the
proxy restarts, the hub might try to remove them, etc.
By adding support for this in the hub itself, all
this complexity is now removed and the hub continues
to own all the routes in the proxy
2021-04-19 16:14:28 +05:30
0mar
184d87ff2a Skip SSL-free tests if not on SSL matrix 2020-11-27 17:00:09 +01:00
Steffen Vogel
e93cc83d58 remove unused imports 2020-04-16 12:12:22 +02:00
Min RK
5e60582ef3 run autoformat
apologies to anyone finding this commit via git blame or log

run the autoformatting by

    pre-commit run --all-files
2019-02-19 17:00:10 +01:00
Min RK
a6d0c36594 allow bypassing proxy in api_request
needed when testing that the proxy is down
2019-02-05 12:40:55 +01:00
Min RK
37cdba370f update tests for pytest-asyncio
- remove gen_test marker
- use async def
- find/replace yield->await approximately one million times
2018-12-12 13:06:10 +01:00
Min RK
89e6c2110e add hub.routespec
this is the routespec for sending requests to the hub

It is [host]/prefix/ (not /hub/) so it receives all
requests, not just those destined for the hub
2018-07-03 12:05:21 +02:00
Min RK
31807929cb update test expectations for proxy state
expect app.base_url instead of unconditional ‘/‘
2018-06-27 12:46:13 +02:00
Min RK
bb81ce0160 also test @ handling in proxy.check_routes
@ and ~ should be the same
2018-06-15 14:33:31 +02:00
Carol Willing
aed99d8d19 add test case for user with tilde 2018-06-14 13:24:05 -07:00
Min RK
cb9f356a69 wait for proxy to exit in test_external_proxy
.terminate() only sends the signal,
it doesn't wait for the process to exit.

If the process doesn't exit promptly,
the next instance may try to grab the port before the previous process has released it,
causing failure with EADDRINUSE.
2017-11-29 15:22:45 +01:00
Min RK
9e7dbbbbff avoid recreating existing users in test_proxy
db tests re-use users across sessions
2017-08-07 13:18:28 +02:00
Min RK
1d156f8183 disable periodic check_routes during proxy tests
can race tests and create inconsistent state
2017-08-06 14:39:42 +02:00
Min RK
684afed3f1 restore user.running property
it was made a method for handing named_servers,
but that made things way more complicated and replaced a boolean flag with a callable,
which would behave unexpectedly but without error if a boolean flag was expected.

Spawners have properties for dealing with this now, so use spawners

Restore `user.running` as an alias for `user.spawner.ready`
2017-08-03 11:09:27 +02:00
Min RK
afc968146d fix race in test_proxy
prevent `.check_routes` from firing while we wait for a new proxy to come up

We check explicitly that it comes up with no routes, so makes sure check_routes hasn't restored its state, which is causing intermittent failures
2017-07-27 12:48:25 +02:00
Min RK
91d042f6f3 get the rest of tests running without threads
all tests pass!
2017-07-27 11:29:58 +02:00
Min RK
382a7121e1 further clear up named servers
- use spawner.server instead of user.server
- user.running, proxy_spec are methods that take spawner names
2017-07-20 16:54:17 +02:00
yuvipanda
5f21909138 Fix proxy test failure 2017-06-29 12:32:31 -07:00
yuvipanda
ebb7b4b4ae Make data a non-optional arg to add_route
We expect at least an empty dict when we fetch it,
so let's make it non-optional and always pass in something.
This is clearer.
2017-06-29 12:26:27 -07:00
Min RK
4c0d4ffc47 add default hub route via Proxy.add_route
instead of relying on default target
2017-06-27 15:22:26 +01:00
Min RK
11e6c38702 routespecs are strings (again)
- no slash means host-routing
- slash means no-host
2017-06-23 14:49:42 +02:00
Min RK
cf257c48b4 handle host-routing in add/get/delete 2017-06-23 14:12:31 +02:00
Min RK
fbf5816952 handle leading/trailing slashes in RouteSpec 2017-06-23 14:12:31 +02:00
Min RK
31fc89c944 add RouteSpec namedtuple for route specification
namedtuple(path, host)

everywhere that accepts a RouteSpec must also accept a string
and treat it as RouteSpec(string).
RouteSpec.as_routespec(spec_or_string) handles this.
2017-06-23 14:12:30 +02:00
Min RK
87d9d14e5d update proxy test 2017-05-04 12:28:37 +02:00
Min RK
be8f847309 move proxy management to Proxy object
out of the Application
2017-05-04 11:13:19 +02:00
Carol Willing
57ed99020f Edit comment 2017-01-27 04:19:43 -08:00
Carol Willing
caa3b0c438 Parameterize test values 2017-01-27 04:14:51 -08:00
Carol Willing
5133cf0275 Add some comments 2017-01-27 04:14:51 -08:00
Carol Willing
7f6c080b46 Fix pep8 errors 2017-01-27 04:14:51 -08:00
Carol Willing
142907395f Use pytest parameterize for proxy tests; fix spacing 2017-01-27 04:14:51 -08:00
Min RK
f97d32c5bd add services to the proxy
and start test coverage
2016-09-01 14:46:34 +02:00
Min RK
05c268e190 Run tests with an encoded base_url
to ensure we get our escaping right

Mostly revealed fixes needed in tests so far, not code,
but should catch regressions.
2016-05-26 13:56:20 +02:00
Min RK
67ccfc7eb7 increase some test coverage 2016-03-07 16:13:57 +01:00
Min RK
be5860822d remove redundant use_subdomains
non-empty subdomain_host is enough
2016-03-04 11:11:41 +01:00
Min RK
335b47d7c1 include protocol in subdomain_host
makes everything easier, and tests are passing with and without subdomains (yay!)
2016-02-28 11:12:41 +01:00
Min RK
f922561003 Tests are passing with subdomains 2016-02-26 17:32:55 +01:00
Min RK
29416463ff proxy needs user dict, which has proxy path
this won't be needed if/when I make a schema change, where domain is included in the Server table.
2016-02-26 17:32:55 +01:00
Min RK
e866abe1a0 use thread-local properties for hub, proxy 2015-07-09 11:34:35 -05:00
Min RK
6cfd186f06 proxy_cmd is a list 2015-06-12 14:01:57 -07:00
Min RK
7082ea60ee fix filter check in Proxy.check_routes
and test that check_routes works as intended
2015-02-11 11:17:01 -08:00
Min RK
037fb66f2f test externally managed proxy
including stop/restart and new API url
2015-02-08 10:15:28 -08:00