1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- from utils import transport
- from utils.ml import ML, AnomalyDetection, AnalyzeAnomaly
- import unittest
- import json
- import os
- path = os.environ['MONITOR_CONFIG_PATH']
- f = open(path)
- CONFIG = json.loads( f.read())
- f.close()
- factory = transport.DataSourceFactory()
- class TestML(unittest.TestCase):
- def setUp(self):
-
- ref = CONFIG['store']['class']['read']
- p = CONFIG['store']['args']
- p['qid'] = ['apps']
- self.greader = factory.instance(type=ref,args=p)
- def test_has_date(self):
- r = self.greader.read()
-
- self.assertTrue(r)
- def test_Filter(self):
- r = self.greader.read()
- r = r['apps']
- #
- # To make this test case extensible we need to pull apps from the configuration
- #
- app = CONFIG['monitor']['processes']['config']['apps'][0]
- x = ML.Filter('label',app,r)
- app = ML.CleanupName(app)
- for row in x:
- self.assertTrue(row['label'] == app)
- def test_Extract(self):
- r = self.greader.read()
- r = r['apps']
- app = CONFIG['monitor']['processes']['config']['apps'][0]
- x = ML.Filter('label',app,r)
- features = CONFIG['learner']['anomalies']['features']
- self.assertTrue(features)
- x_ = ML.Extract(features, x)
-
- self.assertTrue (len (x) == len(x_))
- pass
- def test_Learn(self):
- ref = CONFIG['store']['class']['read']
- p = CONFIG['store']['args']
- greader = factory.instance(type=ref,args=p)
-
- data = greader.read()
-
- data = data['apps']
- app = CONFIG['monitor']['processes']['config']['apps'][0]
- lhandler = AnomalyDetection()
- features = CONFIG['learner']['anomalies']['features']
- label = CONFIG['learner']['anomalies']['label']
- x = lhandler.learn(data,'label',app,features,label)
-
-
- def test_Predict(self):
- ref = CONFIG['store']['class']['read']
- p = CONFIG['store']['args']
- greader = factory.instance(type=ref,args=p)
- data = greader.read()
- if 'learn' in data :
- info = data['learn']
- app = CONFIG['monitor']['processes']['config']['apps'][0]
-
- lhandler = AnalyzeAnomaly()
- features = CONFIG['learner']['anomalies']['features']
- label = CONFIG['learner']['anomalies']['label']
- #x = lhandler.learn(data,'label',app,features,label)
- data = data['apps']
- xo = ML.Filter('label',app,data)
- info = ML.Filter('label',app,info)
-
- lhandler.predict(xo,info[0])
- if __name__ == '__main__' :
- unittest.main()
|