Skip to content

Instantly share code, notes, and snippets.

@omaciel
Last active April 28, 2019 10:25
Show Gist options
  • Save omaciel/b1ea06ee8631d81c75e3 to your computer and use it in GitHub Desktop.
Save omaciel/b1ea06ee8631d81c75e3 to your computer and use it in GitHub Desktop.
Scripts that use Pylarion
import multiprocessing
import ssl
from pylarion.work_item import TestCase
# Avoid SSL errors
ssl._create_default_https_context = ssl._create_unverified_context
items = TestCase.query('project.id:RHSAT6', fields=['status', 'author', 'approvals'])
# No matter if your user has ‘project_admin’, you MUST also have ‘project_approver’
# in order to run the script above or you’ll get the following error:
# PylarionLibException: omaciel is not an allowed assignee
for item in items:
item.add_approvee('omaciel')
item.update()
item.edit_approval('omaciel', 'approved')
import multiprocessing
import ssl
from pylarion.work_item import TestCase
# Avoid SSL errors
ssl._create_default_https_context = ssl._create_unverified_context
items = TestCase.query('project.id:RHSAT6 AND NOT HAS_VALUE:automation_script', fields=['status', 'author', 'approvals'])
for item in items:
item.automation_script='https://github.com/SatelliteQE/robottelo'
item.update()
import multiprocessing
import ssl
from pylarion.work_item import TestCase
# Avoid SSL errors
ssl._create_default_https_context = ssl._create_unverified_context
items = TestCase.query('project.id:RHSAT6 AND NOT HAS_VALUE:description', fields=['title', 'description'])
for item in items:
item.description = item.title
item.update()
import multiprocessing
import ssl
from pylarion.work_item import TestCase
# Avoid SSL errors
ssl._create_default_https_context = ssl._create_unverified_context
# Create a 'CATCH ALL/ALL PURPOSES' Requirement
new_req = Requirement.create(
project_id='RHSAT6',
title='Multi Purpose',
desc='This is a place-holder for tests not associated to any specific formal Requirement.',
status='approved',
reqtype='functional'
)
items = TestCase.query('project.id:RHSAT6 AND NOT linkedWorkItems:verifies=RHSAT*')
for item in items:
# This should work
item.add_linked_item(new_req, 'verifies')
item.update()
import multiprocessing
import ssl
from pylarion.work_item import TestCase
# Avoid SSL errors
ssl._create_default_https_context = ssl._create_unverified_context
def update_status(uri):
tc = TestCase(uri=uri)
if tc.status != 'approved':
print uri, tc.title
tc.status = "approved"
tc.update()
items = TestCase.query('project.id:RHSAT6', fields=['status'])
print "Number of items %s" % len(items)
pool = multiprocessing.Pool(multiprocessing.cpu_count())
pool.map(update_status, [item.uri for item in items])
pool.close()
pool.join()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment