1
0
mirror of https://github.com/peeringdb/peeringdb.git synced 2024-05-11 05:55:09 +00:00
Files
peeringdb-peeringdb/docs/development.md
Matt Griswold 5147028bee clean up / format / poetry (#1000)
* stub in poetry for pipenv

* re-add tester image

* add pre-commit / formatting

* fix ghactions

* revert test data whitespace, exclude tests/data

* revert ws

* decruft, rm tox/pipenv

* install dev packages for base image

* add lgtm config to force to py3
2021-07-10 10:12:35 -05:00

97 lines
1.5 KiB
Markdown

# PeeringDB Server Development
## Models
Note: to add fk's to base models, you must add in both peeringdb.models. and in django_peeringdb.models concrete class
models.py
- make model
- add ref_tag_
serializers.py
- add serializer
peeringdb/rest.py
- make ViewSet
- register
## Modules
### RDAP
- Add output to parsing test
```sh
curl -L https://rdap.db.ripe.net/autnum/$ASN > tests/data/rdap/autnum/$ASN.input
```
or
```sh
scripts/rdap_getasn.sh
scripts/rdap_getent.sh
```
- Pretty print RDAP data
```sh
munge json:https://rdap.arin.net/registry/autnum/2914 yaml:
```
### Whois Server
- To locally test whois, setup `/etc/xinetd.d/pdb-whois` with similar:
```
service whois
{
disable = no
socket_type = stream
wait = no
user = $USER
passenv =
server = /home/$USER/srv/dev.peeringdb.com/peeringdb/in.whoisd
log_on_failure = HOST
}
```
- Deploy and test against local
```sh
facs peeringdb dev --src-dir=. ; whois -h 127.0.0.1 as63311
pytest -v -rxs --cov-report term-missing --cov=peeringdb_server/ --capture=sys tests/
```
## Dependencies
All dependencies are now handled by poetry.
To update them, do `poetry lock` and test.
## Troubleshooting
### 404 on static files with runserver:
Make sure it's in debug mode
### api tests fail
You need to specify the test directory:
```sh
pytest tests/
```
### Can't see error because of warnings
Run pytest with `-p no:warnings`
### Run one specific test
Run pytest with `-k $test_name`