Skip to content
Snippets Groups Projects
Commit f93d5014 authored by David Steinacher's avatar David Steinacher
Browse files

Merge remote-tracking branch 'origin/gitlab-ci' into seeding

creating simpler development
parents d230fa94 df4be786
No related branches found
No related tags found
1 merge request!678Seeding
FROM "mcr.microsoft.com/devcontainers/python:1-3.12-bullseye"
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y \
libev-dev \
zlib1g-dev \
libjpeg-dev
RUN pip install --upgrade pip && \
pip install bjoern tox setuptools
CMD ["sleep", "infinity"]
\ No newline at end of file
{
"name": "amivapi devcontainer setup",
"dockerComposeFile": "docker-compose.yml",
"service": "amivapi",
"workspaceFolder": "/api",
"features": {
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers-extra/features/tox:2": {}
},
"postCreateCommand": "pip install -r requirements.txt && pip install -e /api/.",
"forwardPorts": [27017, 5000]
}
version: "3"
services:
amivapi:
build:
context: .
ports:
- "5000:5000"
volumes:
- ../:/api:cached
environment:
- AMIVAPI_CONFIG=/api/dev_config.py
depends_on:
- mongodb
mongodb:
image: mongo:5.0.14
ports:
- "27017:27017"
volumes:
- ../dev_mongoinit.js:/docker-entrypoint-initdb.d/dev_mongoinit.js:ro
admintool:
image: amiveth/admintool:local
ports:
- "9000:80"
mongo-express:
image: mongo-express
ports:
- "8081:8081"
environment:
- ME_CONFIG_MONGODB_URL=mongodb://mongodb:27017
- ME_CONFIG_BASICAUTH_USERNAME=admin
- ME_CONFIG_BASICAUTH_PASSWORD=admin
depends_on:
- mongodb
test:
image: python:3.12
services:
- name: mongo:5.0.14
alias: mongodb
variables:
MONGO_INITDB_DATABASE: amivapi
before_script:
- pip install --upgrade pip
- pip install tox setuptools
script:
- tox
artifacts:
paths:
- ./coverage.xml
\ No newline at end of file
......@@ -9,65 +9,4 @@ db.createUser(
}
]
}
);
db.getSiblingDB('test_amivapi').createUser(
{
user: "test_user",
pwd: "test_pw",
roles: [
{
role: "readWrite",
db: "test_amivapi"
}
]
}
);
// Use the following code to create default user, group and oauthclient for local development
// db = db.getSiblingDB('amivapi');
// // Create admin user with password admin
// let userId = db.users.insertOne({
// nethz: 'admin',
// password: '$pbkdf2-sha256$5$OqfUmtNaq5UyRohxDuGckw$9H/UL5N5dA7JmUq7ohRPfmJ84OUnpRKjTgsMeuFilXM',
// email: "admin@example.com",
// membership: "regular",
// gender: "female",
// firstname: "ad",
// lastname: "min",
// _etag: "27f987fd9dd45d491e5aea3e27730israndom",
// }).insertedId;
// // Create admin group with permissions on all resources
// let groupId = db.groups.insertOne({
// name: 'admin',
// permissions: {
// apikeys: "readwrite",
// users: "readwrite",
// sessions: "readwrite",
// events: "readwrite",
// eventsignups: "readwrite",
// groups: "readwrite",
// groupmemberships: "readwrite",
// joboffers: "readwrite",
// beverages: "read",
// studydocuments: "readwrite",
// oauthclients: "readwrite",
// },
// _etag: "27f987fd9dd45d491e5aea3e27730israndom",
// }).insertedId;
// // Add admin to admin group
// db.groupmemberships.insertOne({
// user: userId,
// group: groupId,
// _etag: "27f987fd9dd45d491e5aea3e27730israndom",
// })
// // Add Local Tool client for admin tool
// db.oauthclients.insertOne({
// client_id: "Local Tool",
// redirect_uri: "http://localhost",
// _etag: "27f987fd9dd45d491e5aea3e27730israndom",
// });
\ No newline at end of file
);
\ No newline at end of file
"""Setup script generating initial user in mongodb for tox tests."""
from pymongo import MongoClient
# Create a new database and user
client = MongoClient('mongodb', 27017)
db = client['test_amivapi']
db.command('createUser', 'test_user', pwd='test_pw', roles=['readWrite'])
print('User test_user created in database test_amivapi.')
client.close()
......@@ -8,13 +8,13 @@ envlist = py38, py310, py312, flake8
[gh-actions]
python =
3.10: py310, flake8
3.12: py312, flake8
[testenv]
# `-rs` shows summary on skipped tests by default
commands = py.test \
--cov-report term-missing --cov-report xml:coverage.xml --cov=amivapi -rs {posargs} amivapi/tests
commands =
python setup_test_mongo.py # Run MongoDB setup script
py.test --cov-report term-missing --cov-report xml:coverage.xml --cov=amivapi -rs {posargs} amivapi/tests
install_command = pip install {opts} {packages}
deps =
-r requirements.txt
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment