mirror of
https://github.com/peeringdb/peeringdb.git
synced 2024-05-11 05:55:09 +00:00
* use new peeringdb client (1.0.0) for pdb_load_data sync (#599) * drop django-mobi for lack of py3/dj2 support (#492) remove django-forms-bootstrap for lack of py3/dj2 support (#492) * black formatted * django2.2 and py3 upgrade (#492) * drop ixlans (#21) ui and api changes * drop local_asn (#168) * org search (#193) * phone number validation (#50) * implement help text tooltips (#228) * Mark own ASN as transit-free (#394) * py3 fix for `pdb_migrate_ixlans` command when writing migration report * pdb_migrate_ixlans: properly handle py3 Runtime error if ixlan dict changes during iteration * set rest DEFAULT_SCHEMA_CLASS to coreapi to fix swagger apidocs fix migration 0027 missing from facsimile manifest * fix swagger doc strings * fix tests that were broken from api doc fixes * fix UniqueFieldValidator for netixlan ipaddress validation that broke during django/drf upgrade * fix org merge tool layout issues * travis config * update pipfile and lock * black formatting * update travis dist * beta mode banner (#411) * add beta banner template (#411) * automatically scheduled sync may not always be on, add a flag that lets us reflect that state in the beta banner message clean up beta banner implementation (#411) * add tests for beta banner (#411)
85 lines
2.0 KiB
Python
85 lines
2.0 KiB
Python
import pytest
|
|
from django.test import Client
|
|
from django.core.management import call_command
|
|
from peeringdb_server.models import (
|
|
User,
|
|
Organization,
|
|
Sponsorship,
|
|
SponsorshipOrganization,
|
|
)
|
|
|
|
|
|
@pytest.mark.django_db
|
|
@pytest.mark.parametrize(
|
|
"name",
|
|
[
|
|
"RATIOS",
|
|
"RATIOS_TRUNC",
|
|
"RATIOS_ADVS",
|
|
"TRAFFIC",
|
|
"SCOPES",
|
|
"SCOPES_TRUNC",
|
|
"SCOPES_ADVS",
|
|
"NET_TYPES",
|
|
"NET_TYPES_TRUNC",
|
|
"NET_TYPES_ADVS",
|
|
"POLICY_GENERAL",
|
|
"POLICY_LOCATIONS",
|
|
"POLICY_CONTRACTS",
|
|
"REGIONS",
|
|
"POC_ROLES",
|
|
"MEDIA",
|
|
"PROTOCOLS",
|
|
"ORG_GROUPS",
|
|
"BOOL_CHOICE_STR",
|
|
"VISIBILITY",
|
|
],
|
|
)
|
|
def test_enum(name):
|
|
client = Client()
|
|
response = client.get("/data/enum/{}".format(name))
|
|
assert response.status_code == 200
|
|
assert len(response.json()["enum/{}".format(name)]) > 0
|
|
|
|
|
|
@pytest.mark.django_db
|
|
@pytest.mark.parametrize(
|
|
"name,user,count,status",
|
|
[
|
|
("countries_b", "user", 1, 200),
|
|
("countries", "user", 1, 200),
|
|
("sponsors", "user", 1, 200),
|
|
("facilities", "user", 4, 200),
|
|
("organizations", "user", 0, 403),
|
|
("organizations", "su", 1, 200),
|
|
],
|
|
)
|
|
def test_generic(name, user, count, status):
|
|
call_command("pdb_generate_test_data", limit=3, commit=True)
|
|
|
|
org = Organization.objects.first()
|
|
|
|
sponsorship = Sponsorship.objects.create(level=1)
|
|
SponsorshipOrganization.objects.create(
|
|
org=org, sponsorship=sponsorship, logo="fake.png"
|
|
)
|
|
|
|
_user = User.objects.create_user(
|
|
username="user_a", password="user_a", email="user_a@localhost"
|
|
)
|
|
|
|
if user == "su":
|
|
_user.is_superuser = True
|
|
_user.is_staff = True
|
|
_user.save()
|
|
|
|
org.usergroup.user_set.add(_user)
|
|
|
|
client = Client()
|
|
client.login(username="user_a", password="user_a")
|
|
response = client.get("/data/{}".format(name))
|
|
|
|
assert response.status_code == status
|
|
if status == 200:
|
|
assert len(response.json()[name]) >= count
|