Aw_base.py
import json
import syslog
from rest_access import RESTAccess
class AirWatchBase(object):
def __init__(self):
self.rest = RESTAccess()
#syslog.openlog(ident = "airwatch-restlib", logoption = syslog.LOG_PID,facility = syslog.LOG_DEBUG)
def __del__(self):
if self.rest:
del self.rest
#syslog.closelog()
def parse_result(self, data):
if data.content_length > 0:
if data.content_type == "application/json":
return json.loads(data.content)
return data.content
def parse_param(self, data):
if type(data) == dict:
return json.dumps(data)
return data
test.py
#!/usr/bin/python
#-*- coding: utf-8 -*-
import user, group, device
import unittest
import logging
logging.basicConfig(
filename = 'airwatch-restlib.log',
format = "%(asctime)s - %(name)s - %(levelname)s %(message)s",
level = logging.DEBUG
)
class TestUser(unittest.TestCase):
#class TestUser():
def setUp(self):
self.user = user.User()
self.error_user_id = 99999999
def tearDown(self):
del self.user
#@unittest.skip("skipcreate user")
def create(self):
data = {
"UserName":"test_xli",
"Password": "Wsws1234",
"FirstName":"Xusheng",
"LastName":"Li",
"Status":True,
"Email":"test_xli@websense.com",
"SecurityType":2,
#"ContactNumber":"",
"EmailUserName":"Li,Xusheng",
"Group":"676",
#"Role":"Full Access",
#"MessageType": -1,
#"EnrolledDevicesCount":"0",
#"MessageTemplateId": 0
}
#u = self.user.create(data)
u = self.error_user_id
logging.debug("created a user with id %d, and info: %s", u, data)
self.assertTrue(type(u) == int)
def test_update(self):
user_id = 206
data = {
"UserName":"xli",
"Password": "Wsws1234",
"FirstName":"Xusheng",
"LastName":"Li",
"Status":True,
"Email":"xli@websense.com",
"SecurityType":2,
#"ContactNumber":"",
"EmailUserName":"Li,Xusheng",
"Group":"676",
#"Role":"Full Access",
#"MessageType": -1,
#"EnrolledDevicesCount":"0",
#"MessageTemplateId": 0
}
u = self.user.get(user_id)
if u['LastName'] == 'Li':
data['LastName'] = 'Lee'
u = self.user.update(user_id, data)
logging.debug("update a user with id %d, and info: %s", user_id,data)
self.assertTrue(type(u) == int)
u = self.user.get(user_id)
self.assertEqual(u['LastName'], data['LastName'])
def test_get(self):
user_id = 206
u = self.user.get(user_id)
logging.debug("get user by id: %d", user_id)
logging.debug(u)
self.assertEqual(u["Id"], user_id)
def test_get_error(self):
error = self.user.get(self.error_user_id)
logging.debug("get user by id: %d", self.error_user_id)
logging.debug(error)
self.assertEqual(error["ErrorCode"], 400)
def test_delete(self):
user_id = 212
u = self.user.delete(user_id)
logging.debug("delete user by id: %d", user_id)
logging.debug(u)
self.assertEqual(user_id, u)
def test_delete_error(self):
u = self.user.delete(self.error_user_id)
logging.debug("delete user by id: %d", self.error_user_id)
logging.debug(u)
self.assertEqual(u['ErrorCode'], 400)
def register_device(self):
device_info = {
"LocationGroupId": 676,
"FriendlyName":"xli's iPad",
"Ownership":"Undefined",
"PlatformId":0,
"ModelId":0,
"OperatingSystemId":0,
"Udid":"f3f00bbf2326cff4f54028b1c162e5cc53fe6760",
"SerialNumber":"DMPJ89PUDVGK",
"Imei":"013118003265688",
"AssetNumber":"f3f00bbf2326cff4f54028b1c162e5cc53fe6760",
"MessageType":"Text value",
"SIM":"Text value",
"ToEmailAddress":"xli@websense.com",
"ToPhoneNumber":"+8615311729307"
}
self.user.register_device(device_info)
def test_change_location_group(self):
user_id = 206
u = self.user.get(user_id)
if u['Group'] == "Dev group":
group_id = 659
else:
group_id = 676
tmp = self.user.change_location_group(user_id, group_id)
self.assertEqual(tmp, group_id)
def test_change_location_group_error_user_id(self):
group_id = 676
error = self.user.change_location_group(self.error_user_id, group_id)
self.assertEqual(error['ErrorCode'], 400)
def test_change_location_group_error_group_id(self):
user_id = 206
group_id = 99999999
error = self.user.change_location_group(user_id, group_id)
self.assertEqual(error['ErrorCode'], 400)
def test_list(self):
us = self.user.list()
logging.debug("list all users")
logging.debug(us)
self.assertTrue(type(us) == list)
def test_search(self):
data = {
"firstname":"Xusheng",
#"lastname":"Li",
"email":"xli@websense.com",
#"locationgroupid": "676",
#"role":""
}
us = self.user.search(data)
logging.debug("search user by condition: %s", data)
logging.debug(us)
for u in us:
self.assertEqual(u["Email"], "xli@websense.com")
self.assertEqual(u["LastName"], "Li")
self.assertEqual(u["FirstName"], "Xusheng")
self.assertEqual(u["Group"], "Dev group")
def test_search_error(self):
data = {
"firstname":"Not existence firstname",
"lastname":"Not existence lastname",
"email":"notexit@email.com",
"locationgroupid": "676",
#"role":""
}
error = self.user.search(data)
logging.debug('search a nonexist user with condition: %s", data')
logging.debug(error)
self.assertEqual(error[0], 204)
#@unittest.skip("skipgroup test")
class TestGroup(unittest.TestCase):
#class TestGroup():
def setUp(self):
self.group = group.Group()
self.error_group_id = 99999999
def tearDown(self):
del self.group
def test_create(self):
group_id = 659
data = {
u"Name":u"Dev group2",
u"GroupId":u"devgroup2",
u"LocationGroupType":u"Customer",
u"Country":u"China",
u"AddDefaultLocation":u"",
u"LgLevel":0
}
#g = self.group.create(group_id, data)
g = 333
self.assertTrue(type(g) == int)
logging.debug("create an group which id is: %d", g)
def test_update(self):
group_id = 676
data = {
u"Name":u"Dev group",
u"GroupId":u"devgroup",
u"LocationGroupType":u"Customer",
u"Country":u"China",
u"AddDefaultLocation":u"",
u"LgLevel":0
}
g = self.group.get(group_id)
if g['Name'] == 'Dev group':
data['Name'] = 'Dev group3'
g = self.group.update(group_id, data)
self.assertTrue(type(g) == int)
logging.debug("create an group which id is: %d", g)
g = self.group.get(group_id)
self.assertEqual(g['Name'], data['Name'])
def test_get(self):
group_id = 676
g = self.group.get(group_id)
logging.debug("get group information with id: %d", group_id)
logging.debug("group content: %s", g)
self.assertEqual(g['Id'], group_id)
def test_get_error(self):
e = self.group.get(self.error_group_id)
logging.debug("get group information with id: %d", self.error_group_id)
logging.debug("group content: %s", e)
self.assertEqual(e['ErrorCode'], 400)
def test_getadmins(self):
group_id = 659
a = self.group.getadmins(group_id)
logging.debug("get admins of group with group id: %d", group_id)
logging.debug(a)
self.assertTrue(type(a) == list)
def test_getadmins_error(self):
e = self.group.getadmins(self.error_group_id)
logging.debug("get admins of group with group id: %d", self.error_group_id)
logging.debug(e)
self.assertEqual(e['ErrorCode'], 400)
def test_getusers(self):
group_id = 659
us = self.group.getusers(group_id)
logging.debug("get users of group with group id: %d", group_id)
logging.debug(us)
self.assertTrue(type(us) == list)
def test_getusers_error(self):
e = self.group.getusers(self.error_group_id)
logging.debug("get users of group with group id: %d", self.error_group_id)
logging.debug(e)
self.assertEqual(e['ErrorCode'], 400)
def test_getchild(self):
group_id = 659
cs = self.group.getchild(group_id)
logging.debug("get children of group with group id: %d", group_id)
logging.debug(cs)
self.assertTrue(type(cs) == list)
def test_getchild_error(self):
e = self.group.getchild(self.error_group_id)
logging.debug("get child of group with group id: %d", self.error_group_id)
logging.debug(e)
self.assertEqual(e['ErrorCode'], 400)
def test_roles(self):
group_id = 676
rs = self.group.roles(group_id)
logging.debug("get children of group with group id: %d", group_id)
logging.debug(rs)
self.assertTrue(type(rs) == list)
def test_roles_error(self):
e = self.group.roles(self.error_group_id)
logging.debug("get roles of group with group id: %d",self.error_group_id)
logging.debug(e)
self.assertEqual(e['ErrorCode'], 400)
def test_search(self):
cond = {"Name":"Engineering Test","GroupId":"engtest", "Type":"Customer"}
gs = self.group.search(cond)
logging.debug("search group by condition: %s", cond)
logging.debug(gs)
self.assertTrue(type(gs) == list)
for g in gs:
self.assertEqual(g['Name'], "Engineering Test")
self.assertEqual(g['GroupId'], "engtest")
self.assertEqual(g['LocationGroupType'], "Customer")
def test_search_error(self):
cond = {"Name":"Not existence group","GroupId":"Not existence group id","Type":"Not existence type"}
error = self.group.search(cond)
logging.debug('search a nonexist group with condition: %s", data')
logging.debug(error)
self.assertEqual(error[0], 204)
def test_list(self):
gs = self.group.list()
self.assertTrue(type(gs) == list)
#@unittest.skip("skipadmin test")
#class TestAdmin(unittest.TestCase):
class TestAdmin():
def setUp(self):
self.admin = admin.Admin()
def tearDown(self):
del self.admin
def test_create(self):
data = {
#"Id": 287
"UserName":"xli",
"Password":"Wsws123456",
"FirstName":"Xusheng",
"LastName":"Lee",
"Email":"xli@websense.com",
"LocationGroup":"devgroup",
"LocationGroupId":"676",
#"TimeZone":"Text value",
#"Locale":"Text value",
#"InitialLandingPage":"Text value",
#"LastLoginTimeStamp":"\/Date(928164000000-0400)\/",
"Roles":[
{ "Id":10088 },
{ "Id":108 },
{ "Id":10122 }
],
#"IsActiveDirectoryUser":true
}
self.admin.create(data)
def test_get(self):
admin_id = 287
a = self.admin.get(user_id)
logging.debug(u)
self.assertEqual(a["Id"], admin_id)
def test_removerole(self):
role = {
"Id":108
}
pp.pprint(a.removerole(287, role))
def test_addrole(self):
role = {
"Id":108
}
pp.pprint(a.addrole(287, role))
def test_delete(self):
pp.pprint(a.delete(287 ))
def test_changepassword(self):
pp.pprint(a.changepassword(287,data))
def test_list(self):
a = self.user.list()
logging.debug(a)
def test_search(self):
pass
class TestDevice(unittest.TestCase):
#class TestDevice():
def setUp(self):
self.device = device.Device()
self.error_device_id = 99999999
self.error_macaddress = 'ZZZZZZZZZZZZ'
self.error_serial_number = 'ZZZZZZZZZZZZ'
self.error_udid = 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'
def tearDown(self):
del self.device
def test_get(self):
device_id = 779
d = self.device.get(device_id)
logging.debug("get device info by device id: %d", device_id)
logging.debug(d)
self.assertEqual(d['Id'], device_id)
def test_get_error(self):
d = self.device.get(self.error_device_id)
logging.debug("get device info by device id: %d", self.error_device_id)
logging.debug(d)
self.assertEqual(d['ErrorCode'], 404)
def test_get_by_macaddress(self):
macaddress = '8CFABA14927A'
d = self.device.get_by_macaddress(macaddress)
logging.debug("get device info by mac address: %s", macaddress)
logging.debug(d)
self.assertEqual(d['MacAddress'], macaddress)
def test_get_by_macaddress_error(self):
d = self.device.get_by_macaddress(self.error_macaddress)
logging.debug("get device info by mac address: %s", self.error_macaddress)
logging.debug(d)
self.assertEqual(d['ErrorCode'], 404)
def test_get_by_serialnumber(self):
serialnumber = 'DMPJ89PUDVGK'
d = self.device.get_by_serialnumber(serialnumber)
logging.debug("get device info by device serial number: %s",serialnumber)
logging.debug(d)
self.assertEqual(d['SerialNumber'], serialnumber)
def test_get_by_serialnumber_error(self):
d = self.device.get_by_serialnumber(self.error_serial_number)
logging.debug("get device info by device serial number: %s",self.error_serial_number)
logging.debug(d)
self.assertEqual(d['ErrorCode'], 404)
def test_get_by_udid(self):
udid = 'f3f00bbf2326cff4f54028b1c162e5cc53fe6760'
d = self.device.get_by_udid(udid)
logging.debug("get device info by device udid: %s", udid)
logging.debug(d)
self.assertEqual(d['Udid'], udid)
def test_get_udid_error(self):
d = self.device.get_by_udid(self.error_udid)
logging.debug("get device info by device id: %s", self.error_udid)
logging.debug(d)
self.assertEqual(d['ErrorCode'], 404)
def test_get_app_by_id(self):
device_id = 779
d = self.device.get_apps_by_id(device_id)
logging.debug("get application info by device id: %s", device_id)
logging.debug(d)
self.assertTrue(type(d) == list)
def test_query_by_id(self):
device_id = 779
d = self.device.query_by_id(device_id)
logging.debug("get application info by device id: %s", device_id)
logging.debug(d)
self.assertEqual(device_id, d)
def test_query_by_macaddress(self):
macaddress = "8CFABA14927A"
d = self.device.query_by_macaddress(macaddress)
logging.debug("get application info by device macaddress: %s",macaddress)
logging.debug(d)
self.assertEqual(macaddress, d)
def test_query_by_serialnumber(self):
serialnumber = 'DMPJ89PUDVGK'
d = self.device.query_by_serialnumber(serialnumber)
logging.debug("get application info by device serialnumber: %s",serialnumber)
logging.debug(d)
self.assertEqual(serialnumber, d)
def test_query_by_udid(self):
udid = 'f3f00bbf2326cff4f54028b1c162e5cc53fe6760'
d = self.device.query_by_udid(udid)
logging.debug("get application info by device udid: %s", udid)
logging.debug(d)
self.assertEqual(udid, d)
def test_get_by_ids(self):
#data = [779, 613, 616, 620, 622, 646, 647, 648, 730, 755, 779, 804,]
data = [779, 804,]
ds = self.device.get_by_ids(data)
logging.debug("get device info by device ids: %s", data)
logging.debug(ds)
self.assertEqual(type(ds), list)
def test_get_enrollment_status_by_id(self):
device_id = 804
ei = self.device.get_enrollment_status_by_id(device_id)
logging.debug("get enrollment status by device id: %s", device_id)
logging.debug(ei)
self.assertTrue(ei.has_key('Id'))
self.assertEqual(ei['Id'], device_id)
def test_search(self):
data = {"user": "xli"}
ds = self.device.search(data)
self.assertEqual(type(ds), list)
for d in ds:
self.assertEqual(d['UserName'], 'xli')
def test_search_error(self):
data = {"user": "not exist user"}
d = self.device.search(data)
self.assertEqual(type(d), tuple)
def test_list(self):
ds = self.device.list()
logging.debug("list all device")
logging.debug(ds)
self.assertTrue(type(ds) == list)
for d in ds:
logging.debug(d['Id'])
if __name__ == '__main__':
unittest.main()