adapted unit tests
parent
d272ee6f08
commit
0f228a1b23
|
|
@ -121,7 +121,7 @@ class KRParser:
|
|||
kr.keyRequests.append(tmp)
|
||||
|
||||
|
||||
if KROption.VALIDATE_EXISTS in self.options:
|
||||
if self.options and KROption.VALIDATE_EXISTS in self.options:
|
||||
self.checkKeyRequetsExists(kr,self.DTAPIURL, self.DTAPIToken)
|
||||
|
||||
if KROption.VALIDATE_HASDATA in self.options:
|
||||
|
|
|
|||
|
|
@ -1,19 +1,22 @@
|
|||
import unittest
|
||||
#from patterns.Pattern1 import Pattern1, Pattern2, Pattern3
|
||||
from createKeyRequestReport import applyPatterns
|
||||
#from createKeyRequestReport import applyPatterns
|
||||
|
||||
from key_request_parser import krparser
|
||||
|
||||
|
||||
class PatternTestCases(unittest.TestCase):
|
||||
|
||||
# def setUp(self):
|
||||
# self.patterns=[Pattern1(), Pattern2(), Pattern3()]
|
||||
def setUp(self):
|
||||
self.krparser=krp = krparser.KRParser(None, "", "")
|
||||
|
||||
def test_pattern1(self):
|
||||
# p=Pattern1()
|
||||
# for p in patterns:
|
||||
# groups=p.parseServicesAndMethods('100-(builtin:service.keyRequest.errors.server.rate:filter(and(or(in(dt.entity.service_method,entitySelector(type(service_method),fromRelationship.isServiceMethodOfService(type(SERVICE),entityName(api.bmwgroup.com - PROD)),entityName(remoteservices)))))):splitBy():sum:auto:sort(value(sum,descending)))')
|
||||
|
||||
result=applyPatterns('(100)*((builtin:service.keyRequest.errors.server.successCount:filter(and(or(in(dt.entity.service_method,entitySelector(type(service_method),fromRelationship.isServiceMethodOfService(type(~SERVICE~),entityName.in(~RemoteSoftwareUpgrade.WebApp - PROD~)),entityName.in(~POST /v2/vehicle/rsustatus/finishInstallation~,~POST /v2/vehicle/rsustatus/preparationCompleted~,~POST /v2/vehicle/rsustatus/updateAvailable~)))))):splitBy())/(builtin:service.keyRequest.count.server:filter(and(or(in(dt.entity.service_method,entitySelector(type(service_method),fromRelationship.isServiceMethodOfService(type(~SERVICE~),entityName.in(~RemoteSoftwareUpgrade.WebApp - PROD~)),entityName.in(~POST /v2/vehicle/rsustatus/finishInstallation~,~POST /v2/vehicle/rsustatus/preparationCompleted~,~POST /v2/vehicle/rsustatus/updateAvailable~)))))):splitBy()))')
|
||||
|
||||
result=self.krparser.applyPatterns('(100)*((builtin:service.keyRequest.errors.server.successCount:filter(and(or(in(dt.entity.service_method,entitySelector(type(service_method),fromRelationship.isServiceMethodOfService(type(~SERVICE~),entityName.in(~RemoteSoftwareUpgrade.WebApp - PROD~)),entityName.in(~POST /v2/vehicle/rsustatus/finishInstallation~,~POST /v2/vehicle/rsustatus/preparationCompleted~,~POST /v2/vehicle/rsustatus/updateAvailable~)))))):splitBy())/(builtin:service.keyRequest.count.server:filter(and(or(in(dt.entity.service_method,entitySelector(type(service_method),fromRelationship.isServiceMethodOfService(type(~SERVICE~),entityName.in(~RemoteSoftwareUpgrade.WebApp - PROD~)),entityName.in(~POST /v2/vehicle/rsustatus/finishInstallation~,~POST /v2/vehicle/rsustatus/preparationCompleted~,~POST /v2/vehicle/rsustatus/updateAvailable~)))))):splitBy()))')
|
||||
|
||||
expected=[{'services': ['RemoteSoftwareUpgrade.WebApp - PROD'], 'methods': ['POST /v2/vehicle/rsustatus/finishInstallation', 'POST /v2/vehicle/rsustatus/preparationCompleted', 'POST /v2/vehicle/rsustatus/updateAvailable']}, {'services': ['RemoteSoftwareUpgrade.WebApp - PROD'], 'methods': ['POST /v2/vehicle/rsustatus/finishInstallation', 'POST /v2/vehicle/rsustatus/preparationCompleted', 'POST /v2/vehicle/rsustatus/updateAvailable']}]
|
||||
|
||||
|
|
@ -21,19 +24,19 @@ class PatternTestCases(unittest.TestCase):
|
|||
|
||||
def test_pattern2(self):
|
||||
|
||||
result=applyPatterns('(100)*((builtin:service.keyRequest.errors.server.successCount:filter(and(or(in(dt.entity.service_method,entitySelector(type(service_method),fromRelationship.isServiceMethodOfService(type(~SERVICE~),entityName.in(~Perseus (/service)- cub-personalization - prod~)),entityName.in(~GET /service/api/vehicle/v1/gcid/[UUID]/vin/<VIN>/pds~,~PUT /service/api/vehicle/v1/gcid/[UUID]/vin/<VIN>/pds~,~createAssociationForGcidAndVin~)))))):splitBy())/(builtin:service.keyRequest.count.server:filter(and(or(in(dt.entity.service_method,entitySelector(type(service_method),fromRelationship.isServiceMethodOfService(type(~SERVICE~),entityName.in(~Perseus (/service)- cub-personalization - prod~)),entityName.in(~GET /service/api/vehicle/v1/gcid/[UUID]/vin/<VIN>/pds~,~PUT /service/api/vehicle/v1/gcid/[UUID]/vin/<VIN>/pds~,~createAssociationForGcidAndVin~)))))):splitBy()))')
|
||||
result=self.krparser.applyPatterns('(100)*((builtin:service.keyRequest.errors.server.successCount:filter(and(or(in(dt.entity.service_method,entitySelector(type(service_method),fromRelationship.isServiceMethodOfService(type(~SERVICE~),entityName.in(~Perseus (/service)- cub-personalization - prod~)),entityName.in(~GET /service/api/vehicle/v1/gcid/[UUID]/vin/<VIN>/pds~,~PUT /service/api/vehicle/v1/gcid/[UUID]/vin/<VIN>/pds~,~createAssociationForGcidAndVin~)))))):splitBy())/(builtin:service.keyRequest.count.server:filter(and(or(in(dt.entity.service_method,entitySelector(type(service_method),fromRelationship.isServiceMethodOfService(type(~SERVICE~),entityName.in(~Perseus (/service)- cub-personalization - prod~)),entityName.in(~GET /service/api/vehicle/v1/gcid/[UUID]/vin/<VIN>/pds~,~PUT /service/api/vehicle/v1/gcid/[UUID]/vin/<VIN>/pds~,~createAssociationForGcidAndVin~)))))):splitBy()))')
|
||||
expected=[{'services': ['Perseus (/service)- cub-personalization - prod'], 'methods': ['GET /service/api/vehicle/v1/gcid/[UUID]/vin/<VIN>/pds', 'PUT /service/api/vehicle/v1/gcid/[UUID]/vin/<VIN>/pds', 'createAssociationForGcidAndVin']}, {'services': ['Perseus (/service)- cub-personalization - prod'], 'methods': ['GET /service/api/vehicle/v1/gcid/[UUID]/vin/<VIN>/pds', 'PUT /service/api/vehicle/v1/gcid/[UUID]/vin/<VIN>/pds', 'createAssociationForGcidAndVin']}]
|
||||
|
||||
self.assertEqual(result.__str__(), expected.__str__())
|
||||
|
||||
def test_pattern3(self):
|
||||
result=applyPatterns('(100)* ((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in(dt.entity.service_method,entitySelector(type(service_method),fromRelationship.isServiceMethodOfService(type(~SERVICE~),entityName.in(~DownloadApi - ccis - prod~),tag(~Environment:PROD~)),entityName.in(~download~)))))):splitBy())/(builtin:service.keyRequest.count.server:filter(and(or(in(dt.entity.service_method,entitySelector(type(service_method),fromRelationship.isServiceMethodOfService(type(~SERVICE~),entityName.in(~DownloadApi - ccis - prod~),tag(~Environment:PROD~)),entityName.in(~download~)))))):splitBy()))')
|
||||
result=self.krparser.applyPatterns('(100)* ((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in(dt.entity.service_method,entitySelector(type(service_method),fromRelationship.isServiceMethodOfService(type(~SERVICE~),entityName.in(~DownloadApi - ccis - prod~),tag(~Environment:PROD~)),entityName.in(~download~)))))):splitBy())/(builtin:service.keyRequest.count.server:filter(and(or(in(dt.entity.service_method,entitySelector(type(service_method),fromRelationship.isServiceMethodOfService(type(~SERVICE~),entityName.in(~DownloadApi - ccis - prod~),tag(~Environment:PROD~)),entityName.in(~download~)))))):splitBy()))')
|
||||
expected=[{'services': ['DownloadApi - ccis - prod'], 'methods': ['download']}, {'services': ['DownloadApi - ccis - prod'], 'methods': ['download']}]
|
||||
|
||||
self.assertEqual(result.__str__(), expected.__str__())
|
||||
|
||||
def test_pattern4(self):
|
||||
result=applyPatterns('((builtin:service.keyRequest.errors.server.successCount)/(builtin:service.keyRequest.count.server)*(100)):filter(or(eq(dt.entity.service_method,SERVICE_METHOD-02E88144CFC57AEA),eq(dt.entity.service_method,SERVICE_METHOD-2C51346F87339CE8),eq(dt.entity.service_method,SERVICE_METHOD-FE4E553F84167C2E),eq(dt.entity.service_method,SERVICE_METHOD-8A384C81D9AF38CA),eq(dt.entity.service_method,SERVICE_METHOD-3FAF84E444877083),eq(dt.entity.service_method,SERVICE_METHOD-220B20CF01912501),eq(dt.entity.service_method,SERVICE_METHOD-76B0223CDED11B41),eq(dt.entity.service_method,SERVICE_METHOD-ED80E83F71F9E8B7),eq(dt.entity.service_method,SERVICE_METHOD-C03CAD42FED5019E),eq(dt.entity.service_method,SERVICE_METHOD-82354FEF673A217F))):splitBy():avg')
|
||||
result=self.krparser.applyPatterns('((builtin:service.keyRequest.errors.server.successCount)/(builtin:service.keyRequest.count.server)*(100)):filter(or(eq(dt.entity.service_method,SERVICE_METHOD-02E88144CFC57AEA),eq(dt.entity.service_method,SERVICE_METHOD-2C51346F87339CE8),eq(dt.entity.service_method,SERVICE_METHOD-FE4E553F84167C2E),eq(dt.entity.service_method,SERVICE_METHOD-8A384C81D9AF38CA),eq(dt.entity.service_method,SERVICE_METHOD-3FAF84E444877083),eq(dt.entity.service_method,SERVICE_METHOD-220B20CF01912501),eq(dt.entity.service_method,SERVICE_METHOD-76B0223CDED11B41),eq(dt.entity.service_method,SERVICE_METHOD-ED80E83F71F9E8B7),eq(dt.entity.service_method,SERVICE_METHOD-C03CAD42FED5019E),eq(dt.entity.service_method,SERVICE_METHOD-82354FEF673A217F))):splitBy():avg')
|
||||
expected=[{'services': [], 'methods': ['SERVICE_METHOD-02E88144CFC57AEA', 'SERVICE_METHOD-2C51346F87339CE8', 'SERVICE_METHOD-FE4E553F84167C2E', 'SERVICE_METHOD-8A384C81D9AF38CA', 'SERVICE_METHOD-3FAF84E444877083', 'SERVICE_METHOD-220B20CF01912501', 'SERVICE_METHOD-76B0223CDED11B41', 'SERVICE_METHOD-ED80E83F71F9E8B7', 'SERVICE_METHOD-C03CAD42FED5019E', 'SERVICE_METHOD-82354FEF673A217F']}]
|
||||
|
||||
self.assertEqual(result.__str__(), expected.__str__())
|
||||
|
|
|
|||
|
|
@ -1,13 +1,17 @@
|
|||
import unittest
|
||||
import yaml
|
||||
from decouple import config
|
||||
from patterns.Pattern1 import Pattern1, Pattern2, Pattern3
|
||||
from createKeyRequestReport import getParsedSLOs
|
||||
#from patterns.Pattern1 import Pattern1, Pattern2, Pattern3
|
||||
from createKeyRequestReport import getSLO
|
||||
from key_request_parser import krparser
|
||||
|
||||
class EvaluatingSLOTestCases(unittest.TestCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(self):
|
||||
|
||||
self.resultSlos=[]
|
||||
|
||||
with open('./environment.yaml') as file:
|
||||
self.env_doc = yaml.safe_load(file)
|
||||
|
||||
|
|
@ -19,7 +23,19 @@ class EvaluatingSLOTestCases(unittest.TestCase):
|
|||
DTTOKEN = config(token.get('env-token-name'))
|
||||
DTURL = url.get('env-url')
|
||||
|
||||
self.parsedSLOs=getParsedSLOs("Test",DTTOKEN, DTURL)
|
||||
|
||||
krs=[]
|
||||
krp = krparser.KRParser(None ,DTURL, DTTOKEN)
|
||||
|
||||
slosF=getSLO("Test", DTTOKEN, DTURL)
|
||||
|
||||
for index, row in slosF.iterrows():
|
||||
#if row['id'] == "69c57b3f-725f-36fb-88ef-fb64b03eb0ce": #or row['id'] == "ab1bf34a-10fc-3446-9cc7-79d257498a52":
|
||||
krs.append(krp.parseBySLO(row))
|
||||
|
||||
self.resultSlos.extend(krs)
|
||||
|
||||
|
||||
|
||||
|
||||
def test_shouldNotBeIgnored(self):
|
||||
|
|
@ -27,10 +43,10 @@ class EvaluatingSLOTestCases(unittest.TestCase):
|
|||
#getParsedSLOs(DTTOKEN, DTURL)
|
||||
#slos=getParsedSLOs(DTTOKEN, DTURL)
|
||||
|
||||
ignored=[a for a in self.parsedSLOs if len(a.keyRequestGroup) == 0]
|
||||
ignored=[a for a in self.resultSlos if len(a.matchedGroups) == 0]
|
||||
|
||||
#check if service_method" is in spressenion
|
||||
val1=[i for i in ignored if "service_method" in i.metricExpression.lower() or "service_method" in i.filter.lower() ]
|
||||
val1=[i for i in ignored if "service_method" in i.metadata["metricExpression"].lower() or "service_method" in i.metadata["filter"].lower() ]
|
||||
|
||||
#print("asd")
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue