Skip to content

Commit 7f671bc

Browse files
committed
chore: extract dev dependencies in carbonserver
1 parent 8e8f430 commit 7f671bc

7 files changed

Lines changed: 462 additions & 445 deletions

File tree

.github/workflows/build-server.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
- name: Set up Python
2424
run: uv python install 3.12
2525
- name: Install dependencies
26-
run: uv sync --project carbonserver
26+
run: uv sync --project carbonserver --extra dev
2727
- name: Unit tests on api
2828
run: uv run task test-api-unit
2929
test_api_server:
@@ -60,7 +60,7 @@ jobs:
6060
- name: Set up Python
6161
run: uv python install 3.12
6262
- name: Install dependencies
63-
run: uv sync --project carbonserver
63+
run: uv sync --project carbonserver --extra dev
6464
- name: Setup database
6565
env:
6666
DATABASE_URL: postgresql://codecarbon-user:supersecret@localhost:5480/codecarbon_db

CONTRIBUTING.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -467,16 +467,21 @@ python examples/api_call_debug.py
467467
<!-- TOC --><a name="test-the-api"></a>
468468
### Test the API
469469

470-
To test the API, you can use the following command:
470+
Test dependencies (pytest, pytest-asyncio, etc.) are in the `dev` optional group. Install them first:
471471

472472
```sh
473-
uv run api.test-unit
473+
uv sync --project carbonserver --extra dev
474474
```
475475

476+
Then run:
477+
476478
```sh
477-
export CODECARBON_API_URL=http://localhost:8008
478-
uv run api.test-integ
479+
uv run task test-api-unit
480+
```
479481

482+
```sh
483+
export CODECARBON_API_URL=http://localhost:8008
484+
uv run task test-api-integ
480485
```
481486

482487
<!-- TOC --><a name="restore-database-from-a-production-backup"></a>

carbonserver/pyproject.toml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,24 @@ dependencies = [
3131
"sqlalchemy<2.0.0",
3232
"uvicorn[standard]<1.0.0",
3333
"fastapi-pagination<1.0.0",
34-
"mock",
35-
"pytest",
36-
"pytest-asyncio",
37-
"responses",
3834
"numpy",
3935
"psutil",
40-
"requests-mock",
4136
"rapidfuzz",
4237
"PyJWT",
4338
"fastapi-oidc>=0.0.9",
4439
"authlib>=1.6.6",
4540
"itsdangerous>=2.2.0",
4641
]
4742

43+
[project.optional-dependencies]
44+
dev = [
45+
"mock",
46+
"pytest",
47+
"pytest-asyncio",
48+
"responses",
49+
"requests-mock",
50+
]
51+
4852
[project.urls]
4953
Homepage = "https://codecarbon.io/"
5054
Repository = "https://github.com/mlco2/codecarbon"

carbonserver/tests/TESTING.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,17 @@ A Postman collection of requests is available: ```carbonserver/tests/postman/Tes
3838

3939
## Running the tests:
4040

41+
Test dependencies (pytest, pytest-asyncio, etc.) are in the `dev` optional group. Install them with:
42+
43+
```bash
44+
uv sync --project carbonserver --extra dev
45+
```
46+
47+
Then run:
48+
4149
```bash
42-
uv run --extra api task test-api-unit # Unit tests on api
43-
uv run --extra api task test-api-integ # Integration tests
50+
uv run task test-api-unit # Unit tests on api
51+
uv run task test-api-integ # Integration tests
4452
```
4553

4654
To test the HTTP layer, you can also deploy a local instance:

carbonserver/uv.lock

Lines changed: 428 additions & 405 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,8 @@ pre-commit-install = { cmd = "pre-commit install", help = "Install pre-commit ho
126126
dashboard = "uv run --project carbonserver uvicorn main:app --reload"
127127
dashboard-ci = "uv run --project carbonserver uvicorn main:app --host 0.0.0.0 --port 8008"
128128
docker = "docker-compose up -d"
129-
test-api-unit = "uv run --project carbonserver python -m pytest -vv carbonserver/tests/api/routers && uv run --project carbonserver python -m pytest -vv carbonserver/tests/api/service/ && uv run --project carbonserver python -m pytest -vv carbonserver/tests/api/usecase/"
130-
test-api-integ = "uv run --project carbonserver python -m pytest -vv carbonserver/tests/api/integration/"
129+
test-api-unit = "uv run --project carbonserver --extra dev python -m pytest -vv carbonserver/tests/api/routers && uv run --project carbonserver --extra dev python -m pytest -vv carbonserver/tests/api/service/ && uv run --project carbonserver --extra dev python -m pytest -vv carbonserver/tests/api/usecase/"
130+
test-api-integ = "uv run --project carbonserver --extra dev python -m pytest -vv carbonserver/tests/api/integration/"
131131
setup-db = "cd carbonserver && uv run --project carbonserver python -m alembic -c carbonserver/database/alembic.ini upgrade head"
132132
downgrade-db = "cd carbonserver && uv run --project carbonserver python -m alembic -c carbonserver/database/alembic.ini downgrade base"
133133
carbonserver-api-requirements = "uv pip compile carbonserver/pyproject.toml --output-file requirements/requirements-api.txt"

requirements/requirements-api.txt

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ anyio==4.12.0
1111
# httpx
1212
# starlette
1313
# watchfiles
14-
asyncio==4.0.0
15-
# via carbonserver (carbonserver/pyproject.toml)
1614
authlib==1.6.8
1715
# via carbonserver (carbonserver/pyproject.toml)
1816
bcrypt==4.3.0
@@ -87,8 +85,6 @@ idna==3.11
8785
# email-validator
8886
# httpx
8987
# requests
90-
iniconfig==2.3.0
91-
# via pytest
9288
itsdangerous==2.2.0
9389
# via carbonserver (carbonserver/pyproject.toml)
9490
jinja2==3.1.6
@@ -107,14 +103,8 @@ markupsafe==3.0.3
107103
# mako
108104
mdurl==0.1.2
109105
# via markdown-it-py
110-
mock==5.2.0
111-
# via carbonserver (carbonserver/pyproject.toml)
112106
numpy==2.4.2
113107
# via carbonserver (carbonserver/pyproject.toml)
114-
packaging==25.0
115-
# via pytest
116-
pluggy==1.6.0
117-
# via pytest
118108
psutil==6.1.1
119109
# via carbonserver (carbonserver/pyproject.toml)
120110
psycopg2-binary==2.9.11
@@ -138,13 +128,9 @@ pydantic-core==2.41.5
138128
pydantic-settings==2.13.1
139129
# via carbonserver (carbonserver/pyproject.toml)
140130
pygments==2.19.2
141-
# via
142-
# pytest
143-
# rich
131+
# via rich
144132
pyjwt==2.10.1
145133
# via carbonserver (carbonserver/pyproject.toml)
146-
pytest==9.0.1
147-
# via carbonserver (carbonserver/pyproject.toml)
148134
python-dateutil==2.9.0.post0
149135
# via carbonserver (carbonserver/pyproject.toml)
150136
python-dotenv==1.2.1
@@ -156,21 +142,13 @@ python-jose==3.5.0
156142
python-multipart==0.0.22
157143
# via fastapi
158144
pyyaml==6.0.3
159-
# via
160-
# responses
161-
# uvicorn
145+
# via uvicorn
162146
rapidfuzz==3.14.3
163147
# via carbonserver (carbonserver/pyproject.toml)
164148
requests==2.32.5
165149
# via
166150
# carbonserver (carbonserver/pyproject.toml)
167151
# fastapi-oidc
168-
# requests-mock
169-
# responses
170-
requests-mock==1.12.1
171-
# via carbonserver (carbonserver/pyproject.toml)
172-
responses==0.25.8
173-
# via carbonserver (carbonserver/pyproject.toml)
174152
rich==14.2.0
175153
# via
176154
# rich-toolkit
@@ -223,7 +201,6 @@ typing-inspection==0.4.2
223201
urllib3==2.6.3
224202
# via
225203
# requests
226-
# responses
227204
# sentry-sdk
228205
uvicorn==0.38.0
229206
# via

0 commit comments

Comments
 (0)