Files
wlan-testing/tests/e2e/UseCase/test_API_provision.py
Haricharan Jaka 6d8139e6b5 Wifi 9236 (#605)
* Changed the structure of Prov UI API's and Added new API's of Prov

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added map, operators, service class and Config support functions

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added Prov UI API Usecase testcase

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed the format of Provision service API functions

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Added new PROV API testcases

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Made some changes in Allure reporting of Prov API's testcases

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Changed Allure reporting

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>

* Refactored name of API service files

Signed-off-by: haricharan-jaka <haricharan.jaka@candelatech.com>
2022-07-20 10:55:26 +05:30

258 lines
11 KiB
Python

"""
Provision Services Rest API Use Case Tests
"""
import string
import random
import pytest
import json
import allure
@pytest.mark.owprov_api_tests
@pytest.mark.owprov_api_usecase
@allure.feature("SDK PROV REST API")
@allure.parent_suite("OpenWifi SDK Use Case Tests")
@allure.suite("OpenWifi Provisioning Service Tests")
@allure.sub_suite("Provisioning Service Use Case API tests")
class TestProvAPIUseCase(object):
@pytest.mark.prov_api_usecase_test
@allure.title("Prov service Use case testcase")
def test_prov_service_use_case(self, setup_prov_controller, testbed):
"""
Test to create Entity and then creates child entity under it,
then location, venue with the before created location, contact, Inventory device under this child Entity and
deletes them at last
"""
payload = {"name": "Testing_prov",
"rrm": "inherit",
"description": "For testing Purposes through Automation",
"notes": [{"note": "For testing Purposes through Automation"}],
"parent": "0000-0000-0000"
}
print(json.dumps(payload))
resp = setup_prov_controller.add_entity(payload)
allure.attach(name="response: ", body=str(resp.json()))
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov create entity", body=body)
if resp.status_code != 200:
assert False
entitiy = json.loads(resp.text)
print(entitiy)
entity_id = entitiy['id']
resp = setup_prov_controller.get_entity_by_id(entity_id)
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov create device-verify", body=body)
if resp.status_code != 200:
assert False
child_payload = {
"name": "Child Entity testing_prov",
"deviceRules": {
"rrm": "inherit",
"rcOnly": "inherit",
"firmwareUpgrade": "inherit"
},
"description": "Child Entity testing",
"notes": [
{
"note": "Child Entity testing"
}
],
"parent": entity_id
}
print(json.dumps(child_payload))
resp = setup_prov_controller.add_entity(child_payload)
allure.attach(name="response: ", body=str(resp.json()))
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov create Child entity", body=body)
if resp.status_code != 200:
assert False
child_entity = json.loads(resp.text)
print(child_entity)
child_entity_id = child_entity['id']
resp = setup_prov_controller.get_entity_by_id(child_entity_id)
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov create child Entity-verify", body=body)
if resp.status_code != 200:
assert False
location_payload = {
"name": "Testing usecase through Automation",
"description": "Testing usecase through Automation",
"type": "SERVICE",
"addressLines": [
"Pedda Rushikonda",
""
],
"city": "Visakhapatnam",
"state": "Andhra Prdaesh",
"postal": "530045",
"country": "IN",
"buildingName": "Candela Technologies",
"mobiles": [],
"phones": [],
"geoCode": "",
"entity": child_entity_id
}
print(json.dumps(location_payload))
resp = setup_prov_controller.add_location(location_payload)
allure.attach(name="response: ", body=str(resp.json()))
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov create location", body=body)
if resp.status_code != 200:
assert False
location = json.loads(resp.text)
print(location)
location_id = location['id']
resp = setup_prov_controller.get_location_by_id(location_id)
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov create location-verify", body=body)
if resp.status_code != 200:
assert False
venue_payload = {
"name": "Venue under child entity through Automation",
"deviceRules": {
"rrm": "inherit",
"rcOnly": "inherit",
"firmwareUpgrade": "inherit"
},
"description": "Venue under child entity through Automation",
"parent": "",
"entity": child_entity_id,
"location": location_id
}
print(json.dumps(venue_payload))
resp = setup_prov_controller.add_venue(venue_payload)
allure.attach(name="response: ", body=str(resp.json()))
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov create venue", body=body)
if resp.status_code != 200:
assert False
venue = json.loads(resp.text)
print(venue)
venue_id = venue['id']
resp = setup_prov_controller.get_venue_by_id(venue_id)
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov create venue-verify", body=body)
if resp.status_code != 200:
assert False
device_mac = "02:00:00:%02x:%02x:%02x" % (random.randint(0, 255),
random.randint(0, 255),
random.randint(0, 255))
device_name = device_mac.replace(":", "")
inventory_payload = {
"serialNumber": device_name,
"name": "Device under child entity",
"deviceRules": {
"rrm": "inherit",
"rcOnly": "inherit",
"firmwareUpgrade": "inherit"
},
"deviceType": "cig_wf194c4",
"devClass": "entity",
"description": "Device under child entity",
"entity": child_entity_id,
"venue": "",
"subscriber": ""
}
print(json.dumps(inventory_payload))
resp = setup_prov_controller.add_device_to_inventory(device_name, inventory_payload)
allure.attach(name="response: ", body=str(resp.json()))
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov create device", body=body)
if resp.status_code != 200:
assert False
devices = json.loads(resp.text)
print(devices)
resp = setup_prov_controller.get_inventory_by_device(device_name)
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov create device-verify", body=body)
if resp.status_code != 200:
assert False
contact_payload = {
"name": "Tip automation",
"type": "MANAGER",
"salutation": "",
"title": "",
"firstname": "Tip",
"lastname": "Automation",
"initials": "",
"primaryEmail": "tip@candelatech.com",
"secondaryEmail": "",
"mobiles": [],
"phones": [],
"description": "Creating contact through Automation testing",
"accessPIN": "",
"entity": child_entity_id
}
print(json.dumps(contact_payload))
resp = setup_prov_controller.add_contact(contact_payload)
allure.attach(name="response: ", body=str(resp.json()))
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov create contact", body=body)
if resp.status_code != 200:
assert False
contact = json.loads(resp.text)
print(contact)
contact_id = contact['id']
resp = setup_prov_controller.get_contact_by_id(contact_id)
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov create contact-verify", body=body)
if resp.status_code != 200:
assert False
# Deleting Contact
resp = setup_prov_controller.delete_contact(contact_id)
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov created contact-delete", body=body)
if resp.status_code != 200:
assert False
# Deleting Device from Inventory
resp = setup_prov_controller.delete_device_from_inventory(device_name)
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov created device-delete", body=body)
if resp.status_code != 200:
assert False
# Deleting Venue
resp = setup_prov_controller.delete_venue(venue_id)
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov created venue-delete", body=body)
if resp.status_code != 200:
assert False
# Deleting Location
resp = setup_prov_controller.delete_location(location_id)
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov created location-delete", body=body)
if resp.status_code != 200:
assert False
# Deleting Child Entity
resp = setup_prov_controller.delete_entity(child_entity_id)
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov created Child Entity-delete", body=body)
if resp.status_code != 200:
assert False
# Deleting Entity
resp = setup_prov_controller.delete_entity(entity_id)
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
allure.attach(name="Prov created Entity-delete", body=body)
if resp.status_code != 200:
assert False