def testConfiguration(self):
        channel = 'masarService'
        self.mc = masarClient.client(channelname=channel)
        # DB SETUP
        self.conn, collection = utils.conn(
            host=masarconfig.get('mongodb', 'host'),
            port=masarconfig.get('mongodb', 'port'),
            db=masarconfig.get('mongodb', 'database'))

        self.conn.drop_database(masarconfig.get('mongodb', 'database'))
        name = "SR_All_20140421"
        test_status = 'active'
        test_version = 20140421
        test_system = 'SR'
        test_desc = "SR daily SCR setpoint without IS kick and septum: SR and RF"
        params = {
            "desc": test_desc,
            "system": test_system,
            "status": test_status,
            "version": test_version,
        }
        newid = saveconfig(self.conn, collection, name, **params)
        self.assertNotEqual(None, newid)
        res0 = retrieveconfig(self.conn, collection, name)
        self.assertEqual(test_status, res0[0]['status'])
        self.assertEqual(1, res0[0]['configidx'])
        self.assertEqual(name, res0[0]['name'])
        self.assertEqual(test_system, res0[0]['system'])
        self.assertNotEqual(None, res0[0]['created_on'])
        # The following 2 tests are to confirm the date string is in the correct format
        self.assertEqual(3, len(res0[0]['created_on'].split('-')))
        self.assertEqual(3, len(res0[0]['created_on'].split(':')))
        self.assertEqual(test_version, res0[0]['version'])
        self.assertEqual(test_desc, res0[0]['desc'])
        pvs = ["masarExampleDoubleArray"]
        pvlist = {"names": pvs}
        res = updateconfig(self.conn, collection, name, pvlist=pvlist)
        self.assertEqual(True, res)
        res3 = retrieveconfig(self.conn, collection, name, withpvs=True)
        self.assertEqual(test_status, res3[0]['status'])
        self.assertEqual(1, res3[0]['configidx'])
        self.assertEqual(name, res3[0]['name'])
        self.assertEqual(test_system, res3[0]['system'])
        self.assertNotEqual(None, res3[0]['created_on'])
        # The following 2 tests are to confirm the date string is in the correct format
        self.assertEqual(3, len(res3[0]['created_on'].split('-')))
        self.assertEqual(3, len(res3[0]['created_on'].split(':')))
        self.assertEqual(test_version, res3[0]['version'])
        self.assertEqual(test_desc, res3[0]['desc'])
        self.assertEqual(pvlist, res3[0]['pvlist'])
        self.assertNotEqual(None, res3[0]['updated_on'])
        # The following 2 tests are to confirm the date string is in the correct format
        self.assertEqual(3, len(res3[0]['updated_on'].split('-')))
        self.assertEqual(3, len(res3[0]['updated_on'].split(':')))
        # drop DB
        self.conn.drop_database(masarconfig.get('mongodb', 'database'))
        utils.close(self.conn)
    def testConfiguration(self):
        channel = 'masarService'
        self.mc = masarClient.client(channelname=channel)
        # DB SETUP
        self.conn, collection = utils.conn(host=masarconfig.get('mongodb', 'host'),
                                           port=masarconfig.get('mongodb', 'port'),
                                           db=masarconfig.get('mongodb', 'database'))

        self.conn.drop_database(masarconfig.get('mongodb', 'database'))
        name = "SR_All_20140421"
        test_status = 'active'
        test_version = 20140421
        test_system = 'SR'
        test_desc = "SR daily SCR setpoint without IS kick and septum: SR and RF"
        params = {"desc": test_desc,
                  "system": test_system,
                  "status": test_status,
                  "version": test_version,
                  }
        newid = saveconfig(self.conn, collection, name, **params)
        self.assertNotEqual(None, newid)
        res0 = retrieveconfig(self.conn, collection, name)
        self.assertEqual(test_status, res0[0]['status'])
        self.assertEqual(1, res0[0]['configidx'])
        self.assertEqual(name, res0[0]['name'])
        self.assertEqual(test_system, res0[0]['system'])
        self.assertNotEqual(None, res0[0]['created_on'])
        # The following 2 tests are to confirm the date string is in the correct format
        self.assertEqual(3, len(res0[0]['created_on'].split('-')))
        self.assertEqual(3, len(res0[0]['created_on'].split(':')))
        self.assertEqual(test_version, res0[0]['version'])
        self.assertEqual(test_desc, res0[0]['desc'])
        pvs = ["masarExampleDoubleArray"]
        pvlist = {"names": pvs}
        res = updateconfig(self.conn, collection, name, pvlist=pvlist)
        self.assertEqual(True, res)
        res3 = retrieveconfig(self.conn, collection, name, withpvs=True)
        self.assertEqual(test_status, res3[0]['status'])
        self.assertEqual(1, res3[0]['configidx'])
        self.assertEqual(name, res3[0]['name'])
        self.assertEqual(test_system, res3[0]['system'])
        self.assertNotEqual(None, res3[0]['created_on'])
        # The following 2 tests are to confirm the date string is in the correct format
        self.assertEqual(3, len(res3[0]['created_on'].split('-')))
        self.assertEqual(3, len(res3[0]['created_on'].split(':')))
        self.assertEqual(test_version, res3[0]['version'])
        self.assertEqual(test_desc, res3[0]['desc'])
        self.assertEqual(pvlist, res3[0]['pvlist'])
        self.assertNotEqual(None,res3[0]['updated_on'])
        # The following 2 tests are to confirm the date string is in the correct format
        self.assertEqual(3, len(res3[0]['updated_on'].split('-')))
        self.assertEqual(3, len(res3[0]['updated_on'].split(':')))
        # drop DB
        self.conn.drop_database(masarconfig.get('mongodb', 'database'))
        utils.close(self.conn)
Exemplo n.º 3
0
    def __init__(self, channelname='masarService', parent=None):
        super(masarUI, self).__init__(parent)
        self.setupUi(self)
        self.__setDateTime()
        self.tabWindowDict = {'comment': self.commentTab}
        self.e2cDict = {} # event to config dictionary
        self.pv4cDict = {} # pv name list for each selected configuration
        self.data4eid = {}
        self.arrayData = {} # store all array data
        
        self.__service = 'masar'
        self.mc = masarClient.client(channelname)
        
        self.__initSystemBomboBox()
        
        self.currentConfigFilter = str(self.configFilterLineEdit.text())
        self.eventConfigFilter = str(self.eventFilterLineEdit.text())
        self.authorText = str(self.authorTextEdit.text())
        self.UTC_OFFSET_TIMEDELTA = datetime.datetime.utcnow() - datetime.datetime.now()
        self.time_format = "%Y-%m-%d %H:%M:%S"
        self.previewId = None
        self.previewConfName = None
        self.isPreviewSaved = True

        # set bad pv row to grey
        self.brushbadpv = QBrush(QColor(128, 128, 128))
        self.brushbadpv.setStyle(Qt.SolidPattern)
        # DBR_TYPE definition
        #define DBF_STRING  0
        #define DBF_INT     1
        #define DBF_SHORT   1
        #define DBF_FLOAT   2
        #define DBF_ENUM    3
        #define DBF_CHAR    4
        #define DBF_LONG    5
        #define DBF_DOUBLE  6
        self.epicsLong   = [1, 4, 5]
        self.epicsString = [0, 3]
        self.epicsDouble = [2, 6]
        self.epicsNoAccess = [7]
Exemplo n.º 4
0
 def setUp(self):
     channel = 'sqliteMasarTestService'
     self.mc = masarClient.client(channelname=channel)
     SQLITE_DB_TEST_SETUP()
Exemplo n.º 5
0
    return result


def getLiveMachine(mc, pvlist):
    params = {}
    # get a live machine with given pv list
    print '==== get live machine ===='
    for pv in pvlist:
        params[pv] = pv
    result = mc.getLiveMachine(params)
    return result


if __name__ == "__main__":
    channel = 'masarService'
    mc = masarClient.client(channelname=channel)

    res1 = saveMasarSnapshot(mc)
    print res1
    print "event id:", res1[0]
    print "value:", res1[2]

    res2 = retrieveMasarSnapshot(mc, res1[0])
    #res2 = retrieveMasarSnapshot(mc, 17)
    print "name:", res2[0][-10:]
    print "value:", res2[1][-10:]

    pvlist = [
        "masarExampleCharArray", "masarExampleFloatArray",
        "masarExampleShortArray", "masarExampleUCharArray"
    ]
 def setUp(self):
     channel = 'mongoMasarTestService'
     self.mc = masarClient.client(channelname=channel)
     # DB SETUP
     self.conn = MONGODB_TEST_SETUP(self)
Exemplo n.º 7
0
    return result


def getLiveMachine(mc, pvlist):
    params = {}
    # get a live machine with given pv list
    print '==== get live machine ===='
    for pv in pvlist:
        params[pv] = pv
    result = mc.getLiveMachine(params)
    return result


if __name__ == "__main__":
    channel = 'masarService'
    mc = masarClient.client(channelname=channel)

    res1 = saveMasarSnapshot(mc)
    print res1
    print "event id:", res1[0]
    print "value:", res1[2]

    res2 = retrieveMasarSnapshot(mc, res1[0])
    #res2 = retrieveMasarSnapshot(mc, 17)
    print "name:", res2[0][-10:]
    print "value:", res2[1][-10:]

    pvlist = ["masarExampleCharArray",
              "masarExampleFloatArray",
              "masarExampleShortArray",
              "masarExampleUCharArray"]
Exemplo n.º 8
0
    def testConfiguration(self):
        channel = 'masarService'
        self.mc = masarClient.client(channelname=channel)
        # DB SETUP
        __sqlitedb__ = os.environ["MASAR_SQLITE_DB"]
        try:
            conn = sqlite3.connect(__sqlitedb__)
            cur = conn.cursor()
            __sql__ = None
            if __sql__ is None:
                from pymasarsqlite.db.masarsqlite import SQL
            else:
                sqlfile = open(__sql__)
                SQL = sqlfile.read()
            if SQL is None:
                print('SQLite script is empty. Cannot create SQLite db.')
                sys.exit()
            else:
                cur.executescript(SQL)
                cur.execute("PRAGMA main.page_size= 4096;")
                cur.execute("PRAGMA main.default_cache_size= 10000;")
                cur.execute("PRAGMA main.locking_mode=EXCLUSIVE;")
                cur.execute("PRAGMA main.synchronous=NORMAL;")
                cur.execute("PRAGMA main.journal_mode=WAL;")
                cur.execute("PRAGMA main.temp_store = MEMORY;")

            cur.execute('select name from sqlite_master where type=\'table\'')
            masarconf = 'SR_All_20140421'
            servicename = 'masar'

            pvgname = 'masarpvgroup'
            pvgdesc = 'this is my new pv group for masar service with same group name'
            pvs = ["masarExampleDoubleArray"]
            res = savePvGroup(conn, pvgname, func=pvgdesc)
            self.assertEqual([1], res)
            res2 = saveGroupPvs(conn, pvgname, pvs)
            with self.assertRaises(Exception) as context:
                saveGroupPvs(conn, "badname", pvs)
            self.assertEqual(
                context.exception.message,
                'pv group name (badname) is not unique, or not exist.')
            self.assertEqual([1], res2)
            pvgroups = retrievePvGroups(conn)
            self.assertEqual(5, len(pvgroups[0]))
            self.assertEqual(1, pvgroups[0][0])
            self.assertEqual(pvgname, pvgroups[0][1])
            self.assertEqual(pvgdesc, pvgroups[0][2])
            self.assertNotEqual(None, pvgroups[0][3])
            # The following 2 tests are to confirm the date string is in the correct format
            self.assertEqual(3, len(pvgroups[0][3].split('-')))
            self.assertEqual(3, len(pvgroups[0][3].split(':')))
            self.assertEqual(None, pvgroups[0][4])
            test_desc = 'test desc'
            test_system = 'SR'
            test_status = 'active'
            test_version = 20140420
            saveService(conn, servicename, desc=test_desc)

            with self.assertRaises(Exception) as context:
                saveServiceConfig(conn,
                                  "bad servicename",
                                  masarconf,
                                  system=test_system,
                                  status=test_status,
                                  configversion=test_version,
                                  configdesc=test_desc)
            self.assertEqual(
                "service with given name (bad servicename) does not exist.",
                context.exception.message)
            with self.assertRaises(Exception) as context:
                saveServiceConfig(conn,
                                  servicename,
                                  masarconf,
                                  system=test_system,
                                  status="bad status",
                                  configversion=test_version,
                                  configdesc=test_desc)
            self.assertEqual(
                "Service status has to be either active, or inactive",
                context.exception.message)
            saveServiceConfig(conn,
                              servicename,
                              masarconf,
                              system=test_system,
                              status=test_status,
                              configversion=test_version,
                              configdesc=test_desc)
            with self.assertRaises(Exception) as context:
                saveServiceConfig(conn,
                                  servicename,
                                  masarconf,
                                  system=test_system,
                                  status=test_status,
                                  configversion=test_version,
                                  configdesc=test_desc)
            self.assertEqual('service config exists already.',
                             context.exception.message)

            with self.assertRaises(
                    IndexError
            ):  # TODO: Should this be a more specific error message?
                saveServicePvGroup(conn, "bad config", [pvgname])
            with self.assertRaises(Exception) as context:
                res3 = saveServicePvGroup(
                    conn, masarconf,
                    ["bad pvgname"])  # this test prints a message to console
            self.assertEqual(
                "given pv group name (bad pvgname) does not exist.",
                context.exception.message)
            res3 = saveServicePvGroup(conn, masarconf, [pvgname])
            self.assertEqual([1], res3)
            with self.assertRaises(Exception) as context:
                pvlist = retrieveServiceConfigPVs(
                    conn, masarconf, servicename="bad servicename")
            pvlist = retrieveServiceConfigPVs(conn,
                                              masarconf,
                                              servicename=servicename)
            self.assertEqual(
                context.exception.message,
                'Given service (bad servicename) does not exist.')
            self.assertEqual(pvs, pvlist)
            self.expected_column_names = ('config_idx', 'config_name',
                                          'config_desc', 'config_create_date',
                                          'config_version', 'status')
            results = retrieveServiceConfigs(conn, "bad servicename",
                                             masarconf)
            self.assertSequenceEqual(self.expected_column_names, results[0])
            self.assertEqual(1, len(results))  # IE: no data returned
            self.assertEqual(len(self.expected_column_names), len(results[0]))
            results = retrieveServiceConfigs(conn, servicename, "bad conf")
            self.assertSequenceEqual(self.expected_column_names, results[0])
            self.assertEqual(1, len(results))  # IE: no data returned
            self.assertEqual(len(self.expected_column_names), len(results[0]))
            results = retrieveServiceConfigs(conn, servicename, masarconf)
            # Label tests
            self.assertSequenceEqual(self.expected_column_names, results[0])
            self.assertEqual(2, len(results))
            self.assertEqual(len(self.expected_column_names), len(results[0]))
            # Data tests
            self.assertEqual(masarconf, results[1][1])
            self.assertEqual(test_desc, results[1][2])
            self.assertNotEqual(None, results[1][3])
            self.assertEqual(1, results[1][0])
            self.assertEqual(len(self.expected_column_names), len(results[1]))
            # The following 2 tests are to confirm the date string is in the correct format
            self.assertEqual(3, len(results[1][3].split('-')))
            self.assertEqual(3, len(results[1][3].split(':')))
            self.assertEqual(test_version, results[1][4])
            self.assertEqual(test_status, results[1][5])
            conn.commit()
            conn.close()
        except sqlite3.Error, e:
            print("Error %s:" % e.args[0])
            raise
Exemplo n.º 9
0
 def setUp(self):
     channel = 'sqliteMasarTestService'
     self.mc = masarClient.client(channelname=channel)
     SQLITE_DB_TEST_SETUP()