def test_create_cdr(app_auth, client_auth_with_token):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.tenant import Tenant

    tenant = Tenant(name="tenant", uuid="ffffffff-ffff-4c1c-ad1c-ffffffffffff")
    session = SessionLocal(bind=app_auth.engine)
    session.add(tenant)
    session.commit()
    #
    response = client_auth_with_token.post(
        "/1.0/cdrs",
        json={
            "from_uri": "100@localhost",
            "to_uri": "200@localhost",
            "call_id": "1000",
            "source_ip": "10.0.0.1",
            "source_port": 5060,
            "duration": 60,
            "call_start": "2019-09-01T00:00:00",
            "tenant_uuid": str(tenant.uuid),
        },
    )
    assert response.status_code == 200
    assert response.json() == {
        "id": mock.ANY,
        "from_uri": "100@localhost",
        "to_uri": "200@localhost",
        "call_id": "1000",
        "source_ip": "10.0.0.1",
        "source_port": 5060,
        "duration": 60,
        "call_start": "2019-09-01T00:00:00",
        "tenant_uuid": str(tenant.uuid),
    }
Ejemplo n.º 2
0
def test_update_routing_rule(app=None, client=None):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.routing_rule import RoutingRule

    session = SessionLocal(bind=app.engine)
    session.add(
        RoutingRule(
            prefix="39",
            carrier_trunk_id=1,
            ipbx_id=1,
            did_regex=r'^(\+?1)?(8(00|44|55|66|77|88)[2-9]\d{6})$',
            route_type="pstn",
        ))
    session.commit()
    #
    response = client.put(
        "/routing_rules/1",
        json={
            'prefix': '40',
            'carrier_trunk_id': 2,
            'ipbx_id': 1,
            'did_regex': r'^(\+?1)?(8(00|44|55|66|77|88)[2-9]\d{6})$',
            'route_type': "pstn",
        },
    )
    assert response.status_code == 200
    assert response.json() == {
        "id": 1,
        "prefix": "40",
        "carrier_trunk_id": 2,
        "ipbx_id": 1,
        "did_regex": r"^(\+?1)?(8(00|44|55|66|77|88)[2-9]\d{6})$",
        "route_type": "pstn",
    }
Ejemplo n.º 3
0
def test_update_did(app=None, client=None):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.did import DID

    session = SessionLocal(bind=app.engine)
    session.add(
        DID(
            did_regex=r'^(\+?1)?(8(00|44|55|66|77|88)[2-9]\d{6})$',
            carrier_trunk_id=1,
            tenant_id=1,
        ))
    session.commit()
    #
    response = client.put(
        "/dids/1",
        json={
            "id": 1,
            "did_regex": r"^(\+?1)?(8(00|44|55|66|77|88)[2-9]\d{6})$",
            "carrier_trunk_id": 2,
            "tenant_id": 2,
        },
    )
    assert response.status_code == 200
    assert response.json() == {
        "id": 1,
        "did_regex": r"^(\+?1)?(8(00|44|55|66|77|88)[2-9]\d{6})$",
        "carrier_trunk_id": 2,
        "tenant_id": 2,
    }
def create_routing_rule(app_auth, tenant_uuid, suffix=1):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.carrier import Carrier
    from wazo_router_confd.models.carrier_trunk import CarrierTrunk
    from wazo_router_confd.models.domain import Domain
    from wazo_router_confd.models.tenant import Tenant
    from wazo_router_confd.models.ipbx import IPBX
    from wazo_router_confd.models.routing_group import RoutingGroup
    from wazo_router_confd.models.routing_rule import RoutingRule

    session = SessionLocal(bind=app_auth.engine)
    tenant = session.query(Tenant).filter(Tenant.uuid == tenant_uuid).first()
    if tenant is None:
        tenant = Tenant(name="tenant_{}".format(suffix), uuid=tenant_uuid)
        session.add(tenant)
    domain = Domain(domain='testdomain_{}.com'.format(suffix), tenant=tenant)
    ipbx = IPBX(
        tenant=tenant,
        domain=domain,
        customer=1,
        ip_fqdn='mypbx.com',
        registered=True,
        username='******',
        password='******',
    )
    carrier = Carrier(name='carrier_{}'.format(suffix), tenant=tenant)
    carrier_trunk = CarrierTrunk(
        name='carrier_trunk_{}'.format(suffix),
        carrier=carrier,
        sip_proxy='proxy.somedomain.com',
    )
    carrier_trunk_2 = CarrierTrunk(
        name='carrier_trunk_{}_bis'.format(suffix),
        carrier=carrier,
        sip_proxy='proxy.somedomain.com',
    )
    routing_rule = RoutingRule(
        prefix="39",
        carrier_trunk=carrier_trunk,
        ipbx=ipbx,
        did_regex=r'^(\+?1)?(8(00|44|55|66|77|88)[2-9]\d{6})$',
        route_type="pstn",
    )
    routing_group = RoutingGroup(tenant=tenant, routing_rule=routing_rule)

    session.add_all([
        tenant,
        domain,
        carrier,
        carrier_trunk,
        carrier_trunk_2,
        ipbx,
        routing_rule,
        routing_group,
    ])
    session.commit()

    session.flush()

    return routing_rule, ipbx, carrier_trunk, tenant, session
Ejemplo n.º 5
0
def test_create_duplicated_tenant(app=None, client=None):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app.engine)
    session.add(Tenant(name='fabio'))
    session.commit()
    #
    response = client.post("/tenants/", json={"name": "fabio"})
    assert response.status_code == 400
Ejemplo n.º 6
0
def test_get_routing_groups(app=None, client=None):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.routing_group import RoutingGroup

    session = SessionLocal(bind=app.engine)
    session.add(RoutingGroup(routing_rule=1, tenant_id=1))
    session.commit()
    #
    response = client.get("/routing_groups/")
    assert response.status_code == 200
    assert response.json() == [{"id": 1, "routing_rule": 1, "tenant_id": 1}]
def test_get_carriers(app=None, client=None):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.carrier import Carrier

    session = SessionLocal(bind=app.engine)
    session.add(Carrier(name='carrier1', tenant_id=1))
    session.commit()
    #
    response = client.get("/carriers/")
    assert response.status_code == 200
    assert response.json() == [{'id': 1, 'name': 'carrier1', 'tenant_id': 1}]
Ejemplo n.º 8
0
def test_update_tenant(app=None, client=None):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app.engine)
    session.add(Tenant(name='fabio'))
    session.commit()
    #
    response = client.put("/tenants/1", json={'name': 'alex'})
    assert response.status_code == 200
    assert response.json() == {'id': 1, 'name': 'alex'}
Ejemplo n.º 9
0
def test_get_tenant(app=None, client=None):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app.engine)
    session.add(Tenant(name='fabio'))
    session.commit()
    #
    response = client.get("/tenants/1")
    assert response.status_code == 200
    assert response.json() == {"id": 1, "name": "fabio"}
def test_delete_tenant(app_auth, client_auth_with_token):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app_auth.engine)
    tenant = Tenant(name='fabio', uuid="ffffffff-ffff-4c1c-ad1c-ffffffffffff")
    session.add(tenant)
    session.commit()
    #
    response = client_auth_with_token.delete("/1.0/tenants/%s" % tenant.uuid)
    assert response.status_code == 200
    assert response.json() == {'uuid': str(tenant.uuid), 'name': 'fabio'}
Ejemplo n.º 11
0
def test_delete_tenant(app, client):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app.engine)
    tenant = Tenant(name='fabio', uuid="fc8faf32-1bf8-47a4-9d82-f369799b3006")
    session.add(tenant)
    session.commit()
    #
    response = client.delete("/1.0/tenants/%s" % tenant.uuid)
    assert response.status_code == 200
    assert response.json() == {'uuid': str(tenant.uuid), 'name': 'fabio'}
Ejemplo n.º 12
0
def test_create_duplicated_tenant(app, client):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app.engine)
    session.add(Tenant(name='fabio', uuid="fc8faf32-1bf8-47a4-9d82-f369799b3006"))
    session.commit()
    #
    response = client.post(
        "/1.0/tenants",
        json={"name": "fabio", "uuid": "0da63438-02a2-47c3-b05d-344d5d16cef7"},
    )
    assert response.status_code == 409
def test_create_duplicated_tenant(app_auth, client_auth_with_token):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app_auth.engine)
    session.add(Tenant(name='fabio', uuid="ffffffff-ffff-4c1c-ad1c-ffffffffffff"))
    session.commit()
    #
    response = client_auth_with_token.post(
        "/1.0/tenants",
        json={"name": "fabio", "uuid": "0da63438-02a2-47c3-b05d-344d5d16cef7"},
    )
    assert response.status_code == 409
Ejemplo n.º 14
0
def test_create_duplicated_carrier(app=None, client=None):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.carrier import Carrier

    session = SessionLocal(bind=app.engine)
    session.add(Carrier(name='carrier1', tenant_id=1))
    session.commit()
    #
    response = client.post("/carriers/",
                           json={
                               "name": "carrier1",
                               "tenant_id": 1
                           })
    assert response.status_code == 400
def test_create_carrier(app_auth, client_auth_with_token):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.tenant import Tenant

    tenant = Tenant(name="tenant", uuid="ffffffff-ffff-4c1c-ad1c-ffffffffffff")
    session = SessionLocal(bind=app_auth.engine)
    session.add(tenant)
    session.commit()
    #
    response = client_auth_with_token.post(
        "/1.0/carriers", json={"name": "carrier1", "tenant_uuid": str(tenant.uuid)}
    )
    assert response.status_code == 200
    assert response.json() == {
        "id": mock.ANY,
        "name": "carrier1",
        "tenant_uuid": str(tenant.uuid),
    }
Ejemplo n.º 16
0
def test_create_carrier(app, client):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.tenant import Tenant

    tenant = Tenant(name="tenant", uuid="3ab844af-8039-45d9-a3aa-bae6f298228f")
    session = SessionLocal(bind=app.engine)
    session.add(tenant)
    session.commit()
    #
    response = client.post(
        "/1.0/carriers", json={"name": "carrier1", "tenant_uuid": str(tenant.uuid)}
    )
    assert response.status_code == 200
    assert response.json() == {
        "id": mock.ANY,
        "name": "carrier1",
        "tenant_uuid": str(tenant.uuid),
    }
def test_create_domain(app, client):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app.engine)
    tenant = Tenant(name='fabio', uuid="3ab844af-8039-45d9-a3aa-bae6f298228f")
    session.add(tenant)
    session.commit()

    response = client.post(
        "/1.0/domains",
        json={
            "domain": "testdomain.com",
            "tenant_uuid": str(tenant.uuid)
        },
    )
    assert response.status_code == 200
    assert response.json() == {
        "id": mock.ANY,
        "domain": "testdomain.com",
        "tenant_uuid": str(tenant.uuid),
    }
Ejemplo n.º 18
0
def test_create_domain(app_auth, client_auth_with_token):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app_auth.engine)
    tenant = Tenant(name='fabio', uuid="ffffffff-ffff-4c1c-ad1c-ffffffffffff")
    session.add(tenant)
    session.commit()

    response = client_auth_with_token.post(
        "/1.0/domains",
        json={
            "domain": "testdomain.com",
            "tenant_uuid": str(tenant.uuid)
        },
    )
    assert response.status_code == 200
    assert response.json() == {
        "id": mock.ANY,
        "domain": "testdomain.com",
        "tenant_uuid": str(tenant.uuid),
    }