def test_update_domain(app, client):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.domain import Domain
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app.engine)
    tenant = Tenant(name='test', uuid="3ab844af-8039-45d9-a3aa-bae6f298228f")
    tenant_2 = Tenant(name='test_2',
                      uuid="38a334ec-8960-4367-80a3-b44c568df279")
    domain = Domain(domain='testdomain.com', tenant=tenant)
    session.add_all([domain, tenant, tenant_2])
    session.commit()
    #
    response = client.put(
        "/1.0/domains/%s" % domain.id,
        json={
            'domain': 'otherdomain.com',
            'tenant_uuid': str(tenant_2.uuid)
        },
    )
    assert response.status_code == 200
    assert response.json() == {
        'id': domain.id,
        'domain': 'otherdomain.com',
        'tenant_uuid': str(tenant_2.uuid),
    }
def test_update_ipbx(app_auth, client_auth_with_token):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.ipbx import IPBX
    from wazo_router_confd.models.domain import Domain
    from wazo_router_confd.models.tenant import Tenant

    tenant = Tenant(name='fabio', uuid="ffffffff-ffff-4c1c-ad1c-ffffffffffff")
    tenant_2 = Tenant(name='sileht',
                      uuid='ff69a896-8025-4b0c-993e-1ee6449091c5')
    domain = Domain(domain='testdomain.com', tenant=tenant)
    domain_2 = Domain(domain='otherdomain.com', tenant=tenant_2)
    ipbx = IPBX(
        tenant=tenant,
        domain=domain,
        customer=1,
        ip_fqdn='mypbx.com',
        ip_address="10.0.0.1",
        registered=True,
        username='******',
        password='******',
        realm='realm',
    )
    session = SessionLocal(bind=app_auth.engine)
    session.add_all([tenant, tenant_2, domain, domain_2, ipbx])
    session.commit()
    #
    response = client_auth_with_token.put(
        "/1.0/ipbxs/%s" % ipbx.id,
        json={
            'ip_fqdn': 'mypbx2.com',
            'tenant_uuid': str(tenant_2.uuid),
            'domain_id': domain_2.id,
            'username': '******',
            'password': '******',
            'registered': False,
        },
    )
    assert response.status_code == 200
    assert response.json() == {
        "id": ipbx.id,
        "customer": 1,
        "normalization_profile_id": None,
        "ip_fqdn": "mypbx2.com",
        "port": 5060,
        "ip_address": "10.0.0.1",
        "domain_id": domain_2.id,
        "tenant_uuid": str(tenant_2.uuid),
        "registered": False,
        "username": "******",
        "realm": "realm",
    }
Пример #3
0
def test_create_duplicated_carrier_trunk(app_auth, client_auth_with_token):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.carrier_trunk import CarrierTrunk
    from wazo_router_confd.models.carrier import Carrier
    from wazo_router_confd.models.tenant import Tenant

    tenant = Tenant(name="tenant", uuid="ffffffff-ffff-4c1c-ad1c-ffffffffffff")
    carrier = Carrier(name="carrier", tenant=tenant)
    carrier_trunk = CarrierTrunk(
        name='carrier_trunk1',
        tenant=tenant,
        carrier=carrier,
        sip_proxy='proxy.somedomain.com',
    )
    session = SessionLocal(bind=app_auth.engine)
    session.add_all([tenant, carrier, carrier_trunk])
    session.commit()
    #
    response = client_auth_with_token.post(
        "/1.0/carrier_trunks",
        json={
            "name": "carrier_trunk1",
            "tenant_uuid": str(tenant.uuid),
            "carrier_id": carrier.id,
            "sip_proxy": "proxy.somedomain.com",
        },
    )
    assert response.status_code == 409
def test_create_ipbx_password_too_long(app_auth, client_auth_with_token):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.domain import Domain
    from wazo_router_confd.models.tenant import Tenant

    tenant = Tenant(name='fabio', uuid="ffffffff-ffff-4c1c-ad1c-ffffffffffff")
    domain = Domain(domain='testdomain.com', tenant=tenant)
    session = SessionLocal(bind=app_auth.engine)
    session.add_all([tenant, domain])
    session.commit()
    #
    response = client_auth_with_token.post(
        "/1.0/ipbxs",
        json={
            "tenant_uuid": str(tenant.uuid),
            "domain_id": domain.id,
            "customer": 1,
            "ip_fqdn": "mypbx.com",
            "port": 5060,
            "ip_address": "10.0.0.1",
            "registered": True,
            "username": '******' * 128,  # String(50)
            "password": '******' * 248,  # String(192)
        },
    )
    assert response.status_code >= 400 and response.status_code < 500
Пример #5
0
def test_delete_normalization_rule(app_auth, client_auth_with_token):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.normalization import NormalizationProfile
    from wazo_router_confd.models.normalization import NormalizationRule
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app_auth.engine)
    tenant = Tenant(name='fabio', uuid="ffffffff-ffff-4c1c-ad1c-ffffffffffff")
    normalization_profile = NormalizationProfile(name='profile 1', tenant=tenant)
    normalization_rule = NormalizationRule(
        match_regex='^11',
        match_prefix='11',
        replace_regex='',
        profile=normalization_profile,
    )
    session.add_all([tenant, normalization_profile, normalization_rule])
    session.commit()
    #
    response = client_auth_with_token.delete(
        "/1.0/normalization-rules/%s" % normalization_rule.id
    )
    assert response.status_code == 200
    assert response.json() == {
        "id": normalization_rule.id,
        "rule_type": 1,
        "priority": 0,
        "profile_id": normalization_profile.id,
        "match_regex": "^11",
        "replace_regex": '',
    }
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),
    }
def test_create_duplicated_normalization_rule(app, client):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.normalization import NormalizationProfile
    from wazo_router_confd.models.normalization import NormalizationRule
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app.engine)
    tenant = Tenant(name='fabio', uuid='5a6c0c40-b481-41bb-a41a-75d1cc25ff34')
    normalization_profile = NormalizationProfile(name='profile 1',
                                                 tenant=tenant)
    normalization_rule = NormalizationRule(
        match_regex='^11',
        match_prefix='11',
        replace_regex='',
        profile=normalization_profile,
    )
    session.add_all([tenant, normalization_profile, normalization_rule])
    session.commit()
    #
    response = client.post(
        "/1.0/normalization-rules",
        json={
            "profile_id": normalization_profile.id,
            "match_regex": "^11",
            "replace_regex": "",
        },
    )
    assert response.status_code == 409
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
def test_get_cdrs(app_auth, client_auth_with_token):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.cdr import CDR
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app_auth.engine)
    tenant = Tenant(name="tenant", uuid="ffffffff-ffff-4c1c-ad1c-ffffffffffff")
    cdr = CDR(
        from_uri="100@localhost",
        to_uri="200@localhost",
        call_id="1000",
        source_ip="10.0.0.1",
        source_port=5060,
        duration=60,
        call_start=parse("2019-09-01T00:00:00"),
        tenant=tenant,
    )
    session.add_all([tenant, cdr])
    session.commit()
    #
    response = client_auth_with_token.get("/1.0/cdrs")
    assert response.status_code == 200
    assert response.json() == {
        "items": [{
            "id": cdr.id,
            "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),
        }]
    }
def test_create_normalization_rule(app, client):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.normalization import NormalizationProfile
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app.engine)
    tenant = Tenant(name='fabio', uuid='5a6c0c40-b481-41bb-a41a-75d1cc25ff34')
    normalization_profile = NormalizationProfile(name='profile 1',
                                                 tenant=tenant)
    session.add_all([normalization_profile, tenant])
    session.commit()
    #
    response = client.post(
        "/1.0/normalization-rules",
        json={
            "profile_id": normalization_profile.id,
            "rule_type": 1,
            "priority": 1,
            "match_regex": "^11",
            "replace_regex": "",
        },
    )
    assert response.status_code == 200
    assert response.json() == {
        "id": mock.ANY,
        "profile_id": normalization_profile.id,
        "rule_type": 1,
        "priority": 1,
        "match_regex": "^11",
        "replace_regex": "",
    }
Пример #11
0
def test_get_normalization_profile(app, client):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.normalization import NormalizationProfile
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app.engine)
    tenant = Tenant(name='fabio', uuid='5a6c0c40-b481-41bb-a41a-75d1cc25ff34')
    normalization_profile = NormalizationProfile(name='profile 1',
                                                 tenant=tenant)
    session.add_all([normalization_profile, tenant])
    session.commit()
    #
    response = client.get("/1.0/normalization-profiles/%s" %
                          normalization_profile.id)
    assert response.status_code == 200
    assert response.json() == {
        "id": normalization_profile.id,
        "name": "profile 1",
        "tenant_uuid": str(tenant.uuid),
        "country_code": None,
        "area_code": None,
        "intl_prefix": None,
        "ld_prefix": None,
        "always_ld": False,
        "always_intl_prefix_plus": False,
    }
def test_get_normalization_rule(app, client):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.normalization import NormalizationProfile
    from wazo_router_confd.models.normalization import NormalizationRule
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app.engine)
    tenant = Tenant(name='fabio', uuid='5a6c0c40-b481-41bb-a41a-75d1cc25ff34')
    normalization_profile = NormalizationProfile(name='profile 1',
                                                 tenant=tenant)
    normalization_rule = NormalizationRule(
        match_regex='^11',
        match_prefix='11',
        replace_regex='',
        profile=normalization_profile,
    )
    session.add_all([tenant, normalization_profile, normalization_rule])
    session.commit()
    #
    response = client.get("/1.0/normalization-rules/%s" %
                          normalization_rule.id)
    assert response.status_code == 200
    assert response.json() == {
        "id": normalization_rule.id,
        "rule_type": 1,
        "priority": 0,
        "profile_id": normalization_profile.id,
        "match_regex": "^11",
        "replace_regex": '',
    }
Пример #13
0
def test_create_normalization_profile(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_all([tenant])
    session.commit()
    #
    response = client_auth_with_token.post(
        "/1.0/normalization-profiles",
        json={
            "name": "profile 1",
            "tenant_uuid": str(tenant.uuid),
            "country_code": "39",
            "area_code": "11",
            "intl_prefix": "00",
            "ld_prefix": "0",
            "always_ld": True,
            "always_intl_prefix_plus": False,
        },
    )
    assert response.status_code == 200
    assert response.json() == {
        "id": mock.ANY,
        "tenant_uuid": str(tenant.uuid),
        "name": "profile 1",
        "country_code": "39",
        "area_code": "11",
        "intl_prefix": "00",
        "ld_prefix": "0",
        "always_ld": True,
        "always_intl_prefix_plus": False,
    }
Пример #14
0
def test_get_normalization_profiles(app_auth, client_auth_with_token):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.normalization import NormalizationProfile
    from wazo_router_confd.models.tenant import Tenant

    session = SessionLocal(bind=app_auth.engine)
    tenant = Tenant(name='fabio', uuid="ffffffff-ffff-4c1c-ad1c-ffffffffffff")
    normalization_profile = NormalizationProfile(name='profile 1',
                                                 tenant=tenant)
    session.add_all([normalization_profile, tenant])
    session.commit()
    #
    response = client_auth_with_token.get("/1.0/normalization-profiles")
    assert response.status_code == 200
    assert response.json() == {
        "items": [{
            "id": normalization_profile.id,
            "name": "profile 1",
            "tenant_uuid": str(tenant.uuid),
            "country_code": None,
            "area_code": None,
            "intl_prefix": None,
            "ld_prefix": None,
            "always_ld": False,
            "always_intl_prefix_plus": False,
        }]
    }
def test_kamailio_routing_did_with_no_matching_ipbx(app, client):
    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.did import DID

    session = SessionLocal(bind=app.engine)
    tenant = Tenant(name='fabio', uuid='5a6c0c40-b481-41bb-a41a-75d1cc25ff34')
    domain = Domain(domain='testdomain.com', tenant=tenant)
    ipbx = IPBX(
        tenant=tenant,
        domain=domain,
        customer=1,
        ip_fqdn='mypbx.com',
        registered=True,
        username='******',
        password='******',
    )
    carrier = Carrier(name='carrier', tenant=tenant)
    carrier_trunk = CarrierTrunk(name='carrier_trunk1',
                                 carrier=carrier,
                                 sip_proxy='proxy.somedomain.com')
    did = DID(
        did_regex=r'^39[0-9]+$',
        did_prefix='39',
        tenant=tenant,
        ipbx=ipbx,
        carrier_trunk=carrier_trunk,
    )
    session.add_all([tenant, domain, ipbx, carrier, carrier_trunk, did])
    session.commit()
    #
    request_from_name = "From name"
    request_from_uri = "sip:[email protected]"
    request_from_tag = "from_tag"
    request_to_name = "to name"
    request_to_uri = "sip:[email protected]"
    request_to_tag = "to_tag"
    #
    response = client.post(
        "/1.0/kamailio/routing",
        json={
            "event": "sip-routing",
            "source_ip": "10.0.0.1",
            "source_port": 5060,
            "call_id": "call-id",
            "from_name": request_from_name,
            "from_uri": request_from_uri,
            "from_tag": request_from_tag,
            "to_uri": request_to_uri,
            "to_name": request_to_name,
            "to_tag": request_to_tag,
        },
    )
    assert response.status_code == 200
    assert response.json() == {"auth": None, "rtjson": {"success": False}}
Пример #16
0
def test_update_carrier_trunk(app_auth, client_auth_with_token):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.carrier_trunk import CarrierTrunk
    from wazo_router_confd.models.carrier import Carrier
    from wazo_router_confd.models.tenant import Tenant

    tenant = Tenant(name="tenant", uuid="ffffffff-ffff-4c1c-ad1c-ffffffffffff")
    carrier = Carrier(name="carrier", tenant=tenant)
    carrier_trunk = CarrierTrunk(
        name='carrier_trunk1',
        tenant=tenant,
        carrier=carrier,
        sip_proxy='proxy.somedomain.com',
        auth_username='******',
        auth_password='******',
    )
    session = SessionLocal(bind=app_auth.engine)
    session.add_all([tenant, carrier, carrier_trunk])
    session.commit()
    #
    response = client_auth_with_token.put(
        "/1.0/carrier_trunks/%s" % carrier_trunk.id,
        json={
            'name': 'updated_carrier_trunk1',
            "tenant_uuid": str(tenant.uuid),
            "carrier_id": carrier.id,
            "normalization_profile_id": None,
            "sip_proxy": "proxy.somedomain.com",
            "sip_proxy_port": 5061,
            "ip_address": "10.0.0.1",
            "registered": True,
            'auth_username': '******',
            'auth_password': '******',
            "realm": "somerealm.com",
            "registrar_proxy": "registrar-proxy.com",
            "from_domain": "gw.somedomain.com",
            "expire_seconds": 1800,
            "retry_seconds": 10,
        },
    )
    assert response.status_code == 200
    assert response.json() == {
        'id': carrier_trunk.id,
        'name': 'updated_carrier_trunk1',
        "tenant_uuid": str(tenant.uuid),
        "carrier_id": carrier.id,
        "normalization_profile_id": None,
        'sip_proxy': 'proxy.somedomain.com',
        "sip_proxy_port": 5061,
        "ip_address": "10.0.0.1",
        'auth_username': '******',
        'expire_seconds': 1800,
        'retry_seconds': 10,
        'from_domain': "gw.somedomain.com",
        'realm': "somerealm.com",
        'registered': True,
        'registrar_proxy': "registrar-proxy.com",
    }
def test_kamailio_cdr_failed_no_tenant(app, client):
    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.did import DID

    session = SessionLocal(bind=app.engine)
    tenant = Tenant(name='fabio', uuid='5a6c0c40-b481-41bb-a41a-75d1cc25ff34')
    domain = Domain(domain='testdomain.com', tenant=tenant)
    ipbx = IPBX(
        tenant=tenant,
        domain=domain,
        customer=1,
        ip_fqdn='mypbx.com',
        registered=True,
        username='******',
        password='******',
    )
    carrier = Carrier(name='carrier', tenant=tenant)
    carrier_trunk = CarrierTrunk(
        name='carrier_trunk1', carrier=carrier, sip_proxy='proxy.somedomain.com'
    )
    did = DID(
        did_regex=r'^39[0-9]+$',
        did_prefix='39',
        tenant=tenant,
        ipbx=ipbx,
        carrier_trunk=carrier_trunk,
    )
    session.add_all([tenant, domain, ipbx, carrier, carrier_trunk, did])
    session.commit()
    #
    request_from_uri = "*****@*****.**"
    request_to_uri = "*****@*****.**"
    call_start = 1570752000
    duration = 60
    #
    response = client.post(
        "/1.0/kamailio/cdr",
        json={
            "tenant_uuid": "5ecdf9dd-36d3-4735-a5e8-99bd297bc325",
            "event": "sip-routing",
            "source_ip": "10.0.0.1",
            "source_port": 5060,
            "call_id": "call-id",
            "from_uri": request_from_uri,
            "to_uri": request_to_uri,
            "call_start": call_start,
            "duration": duration,
        },
    )

    assert response.status_code == 200
    assert response.json() == {"success": False, "cdr": None}
Пример #18
0
def create_tenant(
    db: Session, principal: Principal, tenant: schema.TenantCreate
) -> Tenant:
    tenant.uuid = get_uuid(principal, db, tenant.uuid, create=False)
    db_tenant = Tenant(name=tenant.name, uuid=tenant.uuid or uuid4().hex)
    db.add(db_tenant)
    db.commit()
    db.refresh(db_tenant)
    return db_tenant
Пример #19
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
Пример #20
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'}
Пример #21
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"}
Пример #22
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'}
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'}
Пример #24
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
Пример #26
0
def test_update_carrier(app, client):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.carrier import Carrier
    from wazo_router_confd.models.tenant import Tenant

    tenant1 = Tenant(name="tenant1", uuid="3ab844af-8039-45d9-a3aa-bae6f298228f")
    tenant2 = Tenant(name="tenant2", uuid="458eb1a1-1769-4b7a-9970-45c5c9c2abe3")
    carrier = Carrier(name='carrier1', tenant=tenant1)
    session = SessionLocal(bind=app.engine)
    session.add_all([tenant1, tenant2, carrier])
    session.commit()
    #
    response = client.put(
        "/1.0/carriers/%d" % carrier.id,
        json={'name': 'updated_carrier', 'tenant_uuid': str(tenant2.uuid)},
    )
    assert response.status_code == 200
    assert response.json() == {
        'id': carrier.id,
        'name': 'updated_carrier',
        'tenant_uuid': str(tenant2.uuid),
    }
def test_kamailio_routing_with_no_matching_ipbx(app=None, client=None):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.tenant import Tenant
    from wazo_router_confd.models.domain import Domain
    from wazo_router_confd.models.ipbx import IPBX

    session = SessionLocal(bind=app.engine)
    tenant = Tenant(name='fabio')
    domain = Domain(domain='testdomain.com', tenant=tenant)
    ipbx = IPBX(
        customer=1,
        ip_fqdn='mypbx.com',
        domain=domain,
        registered=True,
        username='******',
        sha1='da39a3ee5e6b4b0d3255bfef95601890afd80709',
        sha1b='f10e2821bbbea527ea02200352313bc059445190',
        tenant=tenant,
    )
    session.add_all([tenant, domain, ipbx])
    session.commit()
    #
    request_from_name = "From name"
    request_from_uri = "*****@*****.**"
    request_from_tag = "from_tag"
    request_to_name = "to name"
    request_to_uri = "*****@*****.**"
    request_to_tag = "to_tag"
    #
    response = client.post(
        "/kamailio/routing",
        json={
            "event": "sip-routing",
            "source_ip": "10.0.0.1",
            "source_port": 5060,
            "call_id": "call-id",
            "from_name": request_from_name,
            "from_uri": request_from_uri,
            "from_tag": request_from_tag,
            "to_uri": request_to_uri,
            "to_name": request_to_name,
            "to_tag": request_to_tag,
        },
    )
    assert response.status_code == 200
    assert response.json() == {
        "version": "1.0",
        "routing": "serial",
        "routes": []
    }
Пример #28
0
def test_create_duplicated_carrier(app, client):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.carrier import Carrier
    from wazo_router_confd.models.tenant import Tenant

    tenant = Tenant(name="tenant", uuid="3ab844af-8039-45d9-a3aa-bae6f298228f")
    carrier = Carrier(name='carrier1', tenant=tenant)
    session = SessionLocal(bind=app.engine)
    session.add_all([tenant, carrier])
    session.commit()
    #
    response = client.post(
        "/1.0/carriers", json={"name": "carrier1", "tenant_uuid": str(tenant.uuid)}
    )
    assert response.status_code == 409
def test_create_duplicated_carrier(app_auth, client_auth_with_token):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.carrier import Carrier
    from wazo_router_confd.models.tenant import Tenant

    tenant = Tenant(name="tenant", uuid="ffffffff-ffff-4c1c-ad1c-ffffffffffff")
    carrier = Carrier(name='carrier1', tenant=tenant)
    session = SessionLocal(bind=app_auth.engine)
    session.add_all([tenant, carrier])
    session.commit()
    #
    response = client_auth_with_token.post(
        "/1.0/carriers", json={"name": "carrier1", "tenant_uuid": str(tenant.uuid)}
    )
    assert response.status_code == 409
Пример #30
0
def test_create_carrier_trunk(app_auth, client_auth_with_token):
    from wazo_router_confd.database import SessionLocal
    from wazo_router_confd.models.carrier import Carrier
    from wazo_router_confd.models.tenant import Tenant

    tenant = Tenant(name="tenant", uuid="ffffffff-ffff-4c1c-ad1c-ffffffffffff")
    carrier = Carrier(name="carrier", tenant=tenant)
    session = SessionLocal(bind=app_auth.engine)
    session.add_all([tenant, carrier])
    session.commit()

    response = client_auth_with_token.post(
        "/1.0/carrier_trunks",
        json={
            "name": "carrier_trunk1",
            "tenant_uuid": str(tenant.uuid),
            "carrier_id": carrier.id,
            "sip_proxy": "proxy.somedomain.com",
            "ip_address": "10.0.0.1",
            "registered": True,
            "auth_username": "******",
            "auth_password": "******",
            "realm": "somerealm.com",
            "registrar_proxy": "registrar-proxy.com",
            "from_domain": "gw.somedomain.com",
            "expire_seconds": 1800,
            "retry_seconds": 10,
        },
    )
    assert response.status_code == 200
    assert response.json() == {
        "id": mock.ANY,
        "name": "carrier_trunk1",
        "tenant_uuid": str(tenant.uuid),
        "carrier_id": carrier.id,
        "normalization_profile_id": None,
        "sip_proxy": "proxy.somedomain.com",
        "sip_proxy_port": 5060,
        "ip_address": "10.0.0.1",
        "registered": True,
        "auth_username": "******",
        "realm": "somerealm.com",
        "registrar_proxy": "registrar-proxy.com",
        "from_domain": "gw.somedomain.com",
        "expire_seconds": 1800,
        "retry_seconds": 10,
    }