mirror of
				https://github.com/peeringdb/peeringdb.git
				synced 2024-05-11 05:55:09 +00:00 
			
		
		
		
	Gh 724 (#897)
* remove log file writing from migration * run tests on mysql * fix tests (pt.1) * fix tests (pt.2) * fix all user_id errors in tests * Fix geocode typo * More test changes for mysql id issues * Add coverage config that defines coverage db should go inside test folder * update docs * fix mysql user * fix tests cli * add mysql collate settings * docs * fix sync * fix sync * docs * remove debug output * remove XXX * interim commit to move to dev box * mv db local, rm after run * updates for 724 * note layer error message and work around * fix travis * chown tests * more travis fixes * travis: touch Ctl/dev/.env * write coverage report to ./coverage * clean up docs * formatting Co-authored-by: Stefan Pratter <stefan@20c.com> Co-authored-by: Elliot Frank <elliot@20c.com>
This commit is contained in:
		@@ -29,11 +29,12 @@ from peeringdb_server.models import (
 | 
			
		||||
    IXLanIXFMemberImportLogEntry,
 | 
			
		||||
    User,
 | 
			
		||||
    DeskProTicket,
 | 
			
		||||
    Group
 | 
			
		||||
)
 | 
			
		||||
from peeringdb_server import ixf
 | 
			
		||||
 | 
			
		||||
import pytest
 | 
			
		||||
 | 
			
		||||
from .util import override_group_id
 | 
			
		||||
 | 
			
		||||
@pytest.mark.django_db
 | 
			
		||||
def test_reset_ixf_proposals(admin_user, entities, ip_addresses):
 | 
			
		||||
@@ -54,20 +55,20 @@ def test_reset_ixf_proposals(admin_user, entities, ip_addresses):
 | 
			
		||||
 | 
			
		||||
@pytest.mark.django_db
 | 
			
		||||
def test_dismiss_ixf_proposals(admin_user, entities, ip_addresses):
 | 
			
		||||
    IXF_ID = 3
 | 
			
		||||
    
 | 
			
		||||
    network = entities["network"]
 | 
			
		||||
    ixlan = entities["ixlan"][0]
 | 
			
		||||
 | 
			
		||||
    create_IXFMemberData(network, ixlan, ip_addresses, False)
 | 
			
		||||
    ids = create_IXFMemberData(network, ixlan, ip_addresses, False)
 | 
			
		||||
 | 
			
		||||
    client = setup_client(admin_user)
 | 
			
		||||
    url = reverse("net-dismiss-ixf-proposal", args=(network.id, IXF_ID))
 | 
			
		||||
    url = reverse("net-dismiss-ixf-proposal", args=(network.id, ids[-1]))
 | 
			
		||||
 | 
			
		||||
    response = client.post(url)
 | 
			
		||||
    content = response.content.decode("utf-8")
 | 
			
		||||
 | 
			
		||||
    assert response.status_code == 200
 | 
			
		||||
    assert IXFMemberData.objects.filter(pk=IXF_ID).first().dismissed == True
 | 
			
		||||
    assert IXFMemberData.objects.filter(pk=ids[-1]).first().dismissed == True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.django_db
 | 
			
		||||
@@ -89,14 +90,14 @@ def test_reset_ixf_proposals_no_perm(regular_user, entities, ip_addresses):
 | 
			
		||||
 | 
			
		||||
@pytest.mark.django_db
 | 
			
		||||
def test_dismiss_ixf_proposals_no_perm(regular_user, entities, ip_addresses):
 | 
			
		||||
    IXF_ID = 3
 | 
			
		||||
    
 | 
			
		||||
    network = entities["network"]
 | 
			
		||||
    ixlan = entities["ixlan"][0]
 | 
			
		||||
 | 
			
		||||
    create_IXFMemberData(network, ixlan, ip_addresses, False)
 | 
			
		||||
    ids = create_IXFMemberData(network, ixlan, ip_addresses, False)
 | 
			
		||||
 | 
			
		||||
    client = setup_client(regular_user)
 | 
			
		||||
    url = reverse("net-dismiss-ixf-proposal", args=(network.id, IXF_ID))
 | 
			
		||||
    url = reverse("net-dismiss-ixf-proposal", args=(network.id, ids[-1]))
 | 
			
		||||
 | 
			
		||||
    response = client.post(url)
 | 
			
		||||
    content = response.content.decode("utf-8")
 | 
			
		||||
@@ -107,7 +108,6 @@ def test_dismiss_ixf_proposals_no_perm(regular_user, entities, ip_addresses):
 | 
			
		||||
 | 
			
		||||
@pytest.mark.django_db
 | 
			
		||||
def test_ix_order(admin_user, entities, ip_addresses, ip_addresses_other):
 | 
			
		||||
 | 
			
		||||
    """
 | 
			
		||||
    Test that multiple exchanges proposing changes appear
 | 
			
		||||
    sorted by exchange name
 | 
			
		||||
@@ -121,9 +121,11 @@ def test_ix_order(admin_user, entities, ip_addresses, ip_addresses_other):
 | 
			
		||||
    create_IXFMemberData(network, ixlan_b, ip_addresses_other, False)
 | 
			
		||||
 | 
			
		||||
    client = setup_client(admin_user)
 | 
			
		||||
 | 
			
		||||
    url = reverse("net-view", args=(network.id,))
 | 
			
		||||
 | 
			
		||||
    response = client.get(url)
 | 
			
		||||
    with override_group_id():
 | 
			
		||||
        response = client.get(url)
 | 
			
		||||
    content = response.content.decode("utf-8")
 | 
			
		||||
 | 
			
		||||
    assert response.status_code == 200
 | 
			
		||||
@@ -132,14 +134,14 @@ def test_ix_order(admin_user, entities, ip_addresses, ip_addresses_other):
 | 
			
		||||
    assert matches == ["Test Exchange One", "Test Exchange Two"]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.django_db
 | 
			
		||||
@pytest.mark.django_db()
 | 
			
		||||
def test_dismissed_note(admin_user, entities, ip_addresses):
 | 
			
		||||
 | 
			
		||||
    """
 | 
			
		||||
    Test that dismissed hints that are no longer relevant (noop)
 | 
			
		||||
    don't show the "you have dimissed suggestions" notification (#809)
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    network = entities["network"]
 | 
			
		||||
    ixlan_a = entities["ixlan"][0]
 | 
			
		||||
 | 
			
		||||
@@ -148,7 +150,8 @@ def test_dismissed_note(admin_user, entities, ip_addresses):
 | 
			
		||||
    client = setup_client(admin_user)
 | 
			
		||||
    url = reverse("net-view", args=(network.id,))
 | 
			
		||||
 | 
			
		||||
    response = client.get(url)
 | 
			
		||||
    with override_group_id():
 | 
			
		||||
        response = client.get(url)
 | 
			
		||||
    content = response.content.decode("utf-8")
 | 
			
		||||
 | 
			
		||||
    # dismissed suggestion still relevant, confirm note is shown
 | 
			
		||||
@@ -168,7 +171,9 @@ def test_dismissed_note(admin_user, entities, ip_addresses):
 | 
			
		||||
        ipaddr6=ip_addresses[0][1],
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    response = client.get(url)
 | 
			
		||||
    with override_group_id():
 | 
			
		||||
        response = client.get(url)
 | 
			
		||||
        
 | 
			
		||||
    content = response.content.decode("utf-8")
 | 
			
		||||
 | 
			
		||||
    # dismissed suggestion no longer relevant, confirm note is gibe
 | 
			
		||||
@@ -223,9 +228,12 @@ def test_check_ixf_proposals(admin_user, entities, ip_addresses):
 | 
			
		||||
    importer = ixf.Importer()
 | 
			
		||||
    importer.update(ixlan, data=json_data)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    client = setup_client(admin_user)
 | 
			
		||||
    url = reverse("net-view", args=(network.id,))
 | 
			
		||||
    response = client.get(url)
 | 
			
		||||
 | 
			
		||||
    with override_group_id():
 | 
			
		||||
        response = client.get(url)
 | 
			
		||||
    assert response.status_code == 200
 | 
			
		||||
    content = response.content.decode("utf-8")
 | 
			
		||||
 | 
			
		||||
@@ -249,8 +257,9 @@ def setup_client(user):
 | 
			
		||||
 | 
			
		||||
def create_IXFMemberData(network, ixlan, ip_addresses, dismissed):
 | 
			
		||||
    """
 | 
			
		||||
    Creates IXFMember data
 | 
			
		||||
    Creates IXFMember data. Returns the ids of the created instances.
 | 
			
		||||
    """
 | 
			
		||||
    ids = [] 
 | 
			
		||||
    for ip_address in ip_addresses:
 | 
			
		||||
        ixfmember = IXFMemberData.instantiate(
 | 
			
		||||
            network.asn, ip_address[0], ip_address[1], ixlan, data={"foo": "bar"}
 | 
			
		||||
@@ -258,6 +267,10 @@ def create_IXFMemberData(network, ixlan, ip_addresses, dismissed):
 | 
			
		||||
        ixfmember.save()
 | 
			
		||||
        ixfmember.dismissed = dismissed
 | 
			
		||||
        ixfmember.save()
 | 
			
		||||
        ids.append(ixfmember.id)
 | 
			
		||||
    return ids
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture
 | 
			
		||||
@@ -291,6 +304,7 @@ def ip_addresses_other():
 | 
			
		||||
@pytest.fixture
 | 
			
		||||
def entities():
 | 
			
		||||
    entities = {}
 | 
			
		||||
 | 
			
		||||
    with reversion.create_revision():
 | 
			
		||||
        entities["org"] = [Organization.objects.create(name="Netflix", status="ok")]
 | 
			
		||||
 | 
			
		||||
@@ -349,11 +363,20 @@ def entities():
 | 
			
		||||
            status="ok",
 | 
			
		||||
            irr_as_set="AS-NFLX",
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    return entities
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture
 | 
			
		||||
def admin_user():
 | 
			
		||||
    from django.conf import settings
 | 
			
		||||
 | 
			
		||||
    guest_group, _ = Group.objects.get_or_create(name="guest")
 | 
			
		||||
    user_group, _ = Group.objects.get_or_create(name="user")
 | 
			
		||||
 | 
			
		||||
    print("Guest: {} {} ".format(guest_group, guest_group.id))
 | 
			
		||||
    print("User: {} {} ".format(user_group, user_group.id))
 | 
			
		||||
 | 
			
		||||
    admin_user = User.objects.create_user(
 | 
			
		||||
        "admin", "admin@localhost", first_name="admin", last_name="admin"
 | 
			
		||||
    )
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user