def test_get_query(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_db_object') o = gr.add_query('name', 'alm_asset') o.add_or_condition('name', 'bsm_chart') enc_query = gr.get_encoded_query() self.assertEquals(enc_query, 'name=alm_asset^ORname=bsm_chart')
def test_no_result_without_query(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') gr.add_query('sys_id', 'bunk') self.assertFalse(gr.has_next()) for e in gr: assert "Should not have iterated!"
def test_or_query(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_db_object') o = gr.add_query('name', 'alm_asset') o.add_or_condition('name', 'bsm_chart') gr.query() self.assertEquals(gr.get_row_count(), 2)
def test_field_contains(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') gr.fields = 'sys_id,name' gr.get('6816f79cc0a8016401c5a33be04be441') print(gr.serialize()) self.assertTrue('name' in gr) self.assertFalse('whatever' in gr)
def test_len(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') self.assertEquals(len(gr), 0) self.assertEquals(gr.get_row_count(), 0) gr.query() self.assertGreater(len(gr), 0) self.assertGreater(gr.get_row_count(), 0)
def test_object_setter(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('problem') gr.initialize() gr.name = 'aaaa' self.assertEquals(gr.name, 'aaaa') gr.roles = [1, 2, 3] self.assertEquals(gr.roles, [1, 2, 3])
def test_field_bool(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') gr.fields = 'sys_id,active' gr.get('6816f79cc0a8016401c5a33be04be441') print(gr.serialize()) self.assertEquals(gr.active, 'true')
def test_serialize_all_batch(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('problem') gr.batch_size = 3 gr.limit = 9 gr.query() records = gr.serialize_all() self.assertEquals(len(records), 9)
def test_attrs(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') r = gr.get('6816f79cc0a8016401c5a33be04be441') self.assertEquals(r, True) self.assertEquals(gr.sys_id, '6816f79cc0a8016401c5a33be04be441') self.assertEquals(gr.get_value('sys_id'), '6816f79cc0a8016401c5a33be04be441') self.assertEquals(gr.get_display_value('user_password'), '********')
def test_len(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr_first = client.GlideRecord('sys_user') gr_first.fields = 'sys_id' gr_first.query() gr = client.GlideRecord('sys_user') gr.add_null_query('name') gr.query() self.assertNotEquals(len(gr), len(gr_first))
def test_serialize_noncurrent(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('problem') gr.fields = 'sys_id,short_description,state' gr.limit = 4 gr.query() self.assertIsNone(gr.serialize()) gr.next() self.assertIsNotNone(gr.serialize())
def test_field_set_init(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') gr.initialize() name = 'System Administrator' gr.name = name self.assertEquals(gr.name, name) gr.set_value('name', 'Test') self.assertEquals(gr.name, 'Test') self.assertEquals(gr.get_value('name'), 'Test')
def test_attrs_changes(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') r = gr.get('6816f79cc0a8016401c5a33be04be441') self.assertEquals(r, True) self.assertIsNotNone(gr.get_element('sys_id')) self.assertIsNone(gr.get_element('asdf')) self.assertEquals(gr.get_element('sys_id').changes(), False) gr.sys_id = '1234' self.assertEquals(gr.get_element('sys_id').changes(), True)
def test_serialize(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('some_table') gr.initialize() gr.strfield = 'my string' gr.set_display_value('strfield', 'my string display value') gr.intfield = 5 data = gr.serialize() self.assertIsNotNone(data) self.assertEquals(data, {'intfield': 5, 'strfield': 'my string'})
def test_batch_multi_uneven(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('problem') gr.fields = 'sys_id' gr.batch_size = 3 gr.limit = 7 gr.query() res = [r.sys_id for r in gr] self.assertEquals(len(res), 7)
def test_object_secondary_field(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') gr.limit = 1 gr.query() self.assertTrue(gr.next()) gr.boom = 'aaaa' self.assertEquals(gr.boom, 'aaaa') gr.bye = [1, 2, 3] self.assertEquals(gr.bye, [1, 2, 3])
def test_next(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') gr.add_active_query() gr.limit = 2 gr.query() #print(gr.serialize_all()) self.assertTrue(gr.next()) self.assertTrue(gr.has_next()) self.assertTrue(gr.next()) self.assertFalse(gr.has_next())
def test_link_list(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') gr.add_active_query() gr.add_query("name", "CONTAINS", "a") link = gr.get_link_list() print(link) self.assertTrue( link.endswith( 'sys_user_list.do?sysparm_query=active%3Dtrue%5EnameCONTAINSa') )
def test_join_query(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') join_query = gr.add_join_query('sys_user_group', join_table_field='manager') join_query.add_query('active', 'true') self.assertEquals( gr.get_encoded_query(), 'JOINsys_user.sys_id=sys_user_group.manager!active=true') gr.query() self.assertGreater(gr.get_row_count(), 2)
def test_field_getter_query(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') self.assertEquals(gr.fields, None) gr.limit = 1 gr.query() self.assertIsNotNone(gr.fields) self.assertGreater(len(gr.fields), 10) gr.next() print(gr.fields) self.assertGreater(len(gr.fields), 10)
def test_attrs_changes(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') gr.initialize() self.assertTrue(gr.is_new_record()) self.assertIsNone(gr.get_element('sys_id')) gr.sys_id = 'zzzz' # i am not considering a state of nothing to something a change, merely the start of existence self.assertEquals(gr.get_element('sys_id').changes(), False) gr.sys_id = '1234' self.assertEquals(gr.get_element('sys_id').changes(), True)
def test_field_limit(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') gr.fields = 'sys_id,name' r = gr.get('6816f79cc0a8016401c5a33be04be441') print(gr.serialize()) self.assertEquals(r, True) sobj = gr.serialize() self.assertTrue('sys_id' in sobj) self.assertFalse('sys_created_on' in sobj)
def test_fields(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') gr.fields = ['sys_id'] gr.limit = 4 gr.query() count = 0 while gr.next(): count = count + 1 assert len(gr._current().keys()) == 1 self.assertEquals(count, 4)
def test_basic_fail(self): client = ServiceNowClient(self.c.server, ('admin', 'this is not a real password')) try: gr = client.GlideRecord('sys_user') gr.get('does not matter') assert 'Exception should have been thrown' except exceptions.AuthenticationException as e: self.assertTrue('User Not Authenticated' in str(e)) self.assertTrue('Required to provide Auth information' in str(e)) except Exception: assert 'Should have got an Auth exception'
def test_batching(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('syslog') gr.fields = ['sys_id' ] # not testing this, but just limit response size gr.query() gr.limit = 1100 count = 0 while gr.next(): self.assertFalse(gr.is_new_record()) count = count + 1 self.assertGreater(count, 600)
def _getOrCreateEmptyTestRecord(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('problem') gr.add_query('short_description', 'Unit Test - Attachments - Empty') gr.query() if gr.next(): return gr gr.initialize() gr.short_description = "Unit Test - Attachments - Empty" gr.description = "Second Field" gr.insert() return gr
def test_field_limit_query(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') gr.limit = 1 gr.fields = 'sys_id,name' gr.query() gr.next() print(gr.serialize()) sobj = gr.serialize() self.assertTrue('sys_id' in sobj) self.assertFalse('sys_created_on' in sobj)
def test_field_access(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') gr.fields = 'sys_id,name' gr.get('6816f79cc0a8016401c5a33be04be441') print(gr.serialize()) name = 'System Administrator' self.assertEquals(gr.name, name) self.assertEquals(gr.get_value('name'), name) self.assertEquals(gr.get_display_value('name'), name)
def test_link_query(self): client = ServiceNowClient(self.c.server, self.c.credentials) gr = client.GlideRecord('sys_user') gr.limit = 5 gr.query() link = gr.get_link(no_stack=True) print(link) self.assertTrue(link.endswith('sys_user.do?sys_id=null')) self.assertTrue(gr.next()) link = gr.get_link(no_stack=True) print(link) self.assertFalse(link.endswith('sys_user.do?sys_id=null'))
def test_proxy(self): proxy = 'http://localhost:4444' obj = { 'http': 'http://localhost:4444', 'https': 'http://localhost:4444' } client = ServiceNowClient(self.c.server, self.c.credentials, proxy=proxy) self.assertEquals(client.session.proxies, obj) client = ServiceNowClient(self.c.server, self.c.credentials, proxy=obj) self.assertEquals(client.session.proxies, obj)