def test_(self): # test that a new object is added into of store with the correct userobjid expected_result = 'Stan.Math.Tuesday.830-910' datamembers = { 'student': 'Nathaniel', 'teacher': 'Stan', 'subject': 'Math', 'period': '830-910', 'recordtype': 'academic', 'dow': 'Tuesday' } args = dict(database=self.database, refdatabase=self.database, prepmap=self.prepmap, of=self.of, enums=self.enums, datamembers=datamembers) ssviewer_utils.dataset_add(**args) self.assertEqual( self.of.object_get('lesson', datamembers['userobjid']).session.name, expected_result)
def test_add_dow(self): expected_result = [[u'Monday', u'MO', u'1'], [u'Tuesday', u'TU', u'2'], [u'Thursday', u'TH', u'3'], [u'Wednesday', u'WE', u'4'], [u'Friday', u'FR', u'5'], [u'XX', u'Foobarday', u'6']] objtype = 'dow' datamembers = {'name': 'XX', 'code': 'Foobarday'} args = dict(database=self.database, refdatabase=self.database, prepmap=self.prepmap, of=self.of, enums=self.enums, objtype=objtype, datamembers=datamembers) ssviewer_utils.dataset_add(**args) with self.database: _, rows, _ = tbl_rows_get(self.database, "dow", ['name', 'code', 'enum']) self.assertEqual(rows, expected_result)
def test_add_subject_object(self): expected_result = [[ 'code', 'name', 'enum', 'objtype', 'id', 'userobjid' ], [u'Game Period', u'Game Period', 0, 'subject', u'Game Period'], ['CYCL', 'Cycling', 38, 'subject', 'Cycling']] objtype = 'subject' datamembers = {'name': 'Cycling', 'code': 'CYCL'} args = dict(database=self.database, refdatabase=self.database, prepmap=self.prepmap, of=self.of, enums=self.enums, objtype=objtype, datamembers=datamembers) ssviewer_utils.dataset_add(**args) result, _ = ssviewer_utils.dataset_list( self.of, self.enums, 'subject', pagelen=30, pagenum=1, constraints=[], columns=['code', 'name', 'enum', 'objtype', 'userobjid']) self.assertListEqual(result, expected_result)
def test_dupe(self): expected_result = [['', u'MO', u'TU'], [u'830-910', [], [('Math', )]], [u'1030-1110', [(u'Game Period', )], []]] datamembers = { 'student': 'Clayton', 'teacher': 'Stan', 'subject': 'Math', 'period': '830-910', 'recordtype': 'subject', 'dow': 'Tuesday' } args = dict(database=self.database, refdatabase=self.database, prepmap=self.prepmap, of=self.of, enums=self.enums, datamembers=datamembers) newobj = ssviewer_utils.dataset_add(**args) with self.assertRaises(Exception): newobj = ssviewer_utils.dataset_add(**args)
def test_internal_dict(self): # test that the internal datamembers/dm dict has the correct keys by asserting correct values # and comparing keys vs a recovered record expected_result = { 'status': 'master', 'prep': 5, 'recordtype': 'subject', 'period': '830-910', 'substatus': 'complete', 'source': 'manual', 'session': 'Stan.Math.Tuesday.830-910', 'adult': 'Stan', 'student': 'Nathaniel', 'objtype': 'lesson', 'dow': u'TU', 'userobjid': '1.2.1.2.4', 'subject': 'Math' } datamembers = { 'student': 'Nathaniel', 'teacher': 'Stan', 'subject': 'Math', 'period': '830-910', 'recordtype': 'subject', 'dow': 'Tuesday' } args = dict(database=self.database, refdatabase=self.database, prepmap=self.prepmap, of=self.of, enums=self.enums, datamembers=datamembers) ssviewer_utils.dataset_add(**args) obj_recovered = self.of.query('lesson')[0].dm.keys() obj_add = self.of.query('lesson')[1].dm.keys() obj_recovered.sort() obj_add.sort() # test keys self.assertListEqual(obj_recovered, obj_add) obj = self.of.object_get('lesson', datamembers['userobjid']) obj.dm.pop("id") # test values self.assertEqual(obj.dm, expected_result)
def test_update_add(self): # check that a record can be updated after it has been added expected_results = [['status', 'substatus', 'recordtype', 'period', 'dow', 'source', 'session', 'adult', 'student', 'id', 'objtype', 'prep', 'userobjid', 'subject'], [u'master', u'complete', u'academic', u'1030-1110', u'MO', u'dbinsert', u'Dylan.Game Period.Monday.1030-1110', u'Dylan', u'Clayton', 'lesson', 5, u'4.1.2.37.37', u'Game Period'], ['master', 'complete', 'academic', '1030-1110', u'TU', 'manual', 'Stan.Math.Tuesday.830-910', 'Stan', 'Nathaniel', 'lesson', 5, '1.2.1.2.4', 'Math']] datamembers = {'student':'Nathaniel', 'teacher':'Stan', 'subject':'Math', 'period':'830-910', 'recordtype':'academic', 'dow':'Tuesday'} args = dict(database=self.database,refdatabase=self.database,prepmap=self.prepmap,of=self.of,enums=self.enums, datamembers=datamembers,keepversion=True) obj = ssviewer_utils.dataset_add(**args) obj.keepversion=True obj.customtimestamp = "%y%m%d_%H%M%S" newid = obj.update(self.of,'period','1030-1110',self.dbname) grid,colnames = ssviewer_utils.dataset_list(self.of,self.enums,columns=['status', 'substatus', 'recordtype', 'period', 'dow', 'source', 'session', 'adult', 'student', 'objtype', 'prep', 'userobjid', 'subject']) self.assertListEqual(grid,expected_results) # tests whats in the database expected_results = [[u'Dylan', u'Clayton', u'1030-1110', u'MO', u'Game Period', u'academic', u'current', u'master', u'complete', u'dbinsert'], [u'Stan', u'Nathaniel', u'830-910', u'TU', u'Math', u'academic', u'version', u'master', u'complete', u'manual'], [u'Stan', u'Nathaniel', u'1030-1110', u'TU', u'Math', u'academic', u'current', u'master', u'complete', u'manual']] with self.database: _,rows,_ = tbl_rows_get(self.database,'lesson',['teacher','student','period','dow','subject','recordtype','__version','status','substatus','source']) self.assertListEqual(rows,expected_results)
def test_add_period_db(self): expected_result = [[u'330-400']] objtype = 'period' datamembers = {'name':'330-400','code':'330'} args = dict(database=self.database,refdatabase=self.database,prepmap=self.prepmap,of=self.of,enums=self.enums, objtype=objtype,datamembers=datamembers) ssviewer_utils.dataset_add(**args) with self.database: _,rows,_ = tbl_rows_get(self.database,"period",['name'],[["name","=","\"330-400\""]]) self.assertEqual(rows,expected_result)
def test_add_period_object(self): expected_result = [[u'330-400']] objtype = 'period' datamembers = {'name': '330-400', 'code': '330'} args = dict(database=self.database, refdatabase=self.database, prepmap=self.prepmap, of=self.of, enums=self.enums, objtype=objtype, datamembers=datamembers) newobj = ssviewer_utils.dataset_add(**args) with self.database: _, rows, _ = tbl_rows_get(self.database, "period", ['name'], [["name", "=", "\"330-400\""]]) self.assertEqual(rows, expected_result) expected_result = { 'code': '330', 'name': '330-400', 'enum': 11, 'objtype': 'period', 'userobjid': '330-400' } newobj.dm.pop('id') #print newobj.dm,expected_result self.assertEqual(newobj.dm, expected_result)
def test_pivot(self): expected_result = [['', u'MO', u'TU'], [u'1030-1110', [(u'Game Period', )], []], ['830-910', [], [('Math', )]]] datamembers = { 'student': 'Clayton', 'teacher': 'Stan', 'subject': 'Math', 'period': '830-910', 'recordtype': 'subject', 'dow': 'Tuesday' } args = dict(database=self.database, refdatabase=self.database, prepmap=self.prepmap, of=self.of, enums=self.enums, datamembers=datamembers) newobj = ssviewer_utils.dataset_add(**args) args = dict(of=self.of, enums=self.enums, yaxis_type='dow', xaxis_type='period', source_type='student', source_value='Clayton', ztypes=['subject']) result = ssviewer_utils.dataset_pivot(**args) self.assertListEqual(result, expected_result)
def test_db(self): expected_result = [[ u'Dylan', u'Clayton', u'1030-1110', u'MO', u'Game Period', u'academic' ], [u'Stan', u'Nathaniel', u'830-910', u'TU', u'Math', u'academic']] datamembers = { 'student': 'Nathaniel', 'teacher': 'Stan', 'subject': 'Math', 'period': '830-910', 'recordtype': 'academic', 'dow': 'Tuesday' } args = dict(database=self.database, refdatabase=self.database, prepmap=self.prepmap, of=self.of, enums=self.enums, datamembers=datamembers) obj = ssviewer_utils.dataset_add(**args) obj.keepversion = True obj.customtimestamp = "%y%m%d_%H%M%S" with self.database: _, rows, _ = tbl_rows_get(self.database, 'lesson', [ 'teacher', 'student', 'period', 'dow', 'subject', 'recordtype' ]) self.assertListEqual(expected_result, rows)
def test_pivot(self): expected_result = [['', u'MO', u'TU'], [u'1030-1110', [(u'Game Period',)], []], ['830-910', [], [('Math',)]]] datamembers = {'student':'Clayton', 'teacher':'Stan', 'subject':'Math', 'period':'830-910', 'recordtype':'subject', 'dow':'Tuesday'} args = dict(database=self.database,refdatabase=self.database,prepmap=self.prepmap,of=self.of,enums=self.enums, datamembers=datamembers) newobj = ssviewer_utils.dataset_add(**args) args = dict(of=self.of,enums=self.enums, yaxis_type='dow',xaxis_type='period', source_type='student',source_value='Clayton', ztypes=['subject']) result = ssviewer_utils.dataset_pivot(**args) self.assertListEqual(result,expected_result)
def test_add_adult(self): expected_result = [[u'Jon', u'JB', u'39']] objtype = 'adult' datamembers = {'name':'Jon', 'code':'JB', 'prep':5} args = dict(database=self.database,refdatabase=self.database,prepmap=self.prepmap,of=self.of,enums=self.enums, objtype=objtype,datamembers=datamembers) ssviewer_utils.dataset_add(**args) with self.database: _,rows,_ = tbl_rows_get(self.database,"adult",['name','code','enum'],[["name","=","\"Jon\""]]) self.assertEqual(rows,expected_result)
def test_add_dow(self): expected_result = [[u'Monday', u'MO', u'1'], [u'Tuesday', u'TU', u'2'], [u'Thursday', u'TH', u'3'], [u'Wednesday', u'WE', u'4'], [u'Friday', u'FR', u'5'], [u'XX', u'Foobarday', u'6']] objtype = 'dow' datamembers = {'name':'XX', 'code':'Foobarday'} args = dict(database=self.database,refdatabase=self.database,prepmap=self.prepmap,of=self.of,enums=self.enums, objtype=objtype,datamembers=datamembers) ssviewer_utils.dataset_add(**args) with self.database: _,rows,_ = tbl_rows_get(self.database,"dow",['name','code','enum']) self.assertEqual(rows,expected_result)
def test_dupe(self): expected_result = [['', u'MO', u'TU'], [u'830-910', [], [('Math',)]], [u'1030-1110', [(u'Game Period',)], []]] datamembers = {'student':'Clayton', 'teacher':'Stan', 'subject':'Math', 'period':'830-910', 'recordtype':'subject', 'dow':'Tuesday'} args = dict(database=self.database,refdatabase=self.database,prepmap=self.prepmap,of=self.of,enums=self.enums, datamembers=datamembers) newobj = ssviewer_utils.dataset_add(**args) with self.assertRaises(Exception): newobj = ssviewer_utils.dataset_add(**args)
def test_(self): # test that a new object is added into of store with the correct userobjid expected_result = 'Stan.Math.Tuesday.830-910' datamembers = {'student':'Nathaniel', 'teacher':'Stan', 'subject':'Math', 'period':'830-910', 'recordtype':'academic', 'dow':'Tuesday'} args = dict(database=self.database,refdatabase=self.database,prepmap=self.prepmap,of=self.of,enums=self.enums, datamembers=datamembers) ssviewer_utils.dataset_add(**args) self.assertEqual(self.of.object_get('lesson',datamembers['userobjid']).session.name, expected_result)
def test_add_subject_object(self): expected_result = [['code', 'name', 'enum', 'objtype', 'id', 'userobjid'], [u'Game Period', u'Game Period', 0, 'subject', u'Game Period'], ['CYCL', 'Cycling', 38, 'subject', 'Cycling']] objtype = 'subject' datamembers = {'name':'Cycling', 'code':'CYCL'} args = dict(database=self.database,refdatabase=self.database,prepmap=self.prepmap,of=self.of,enums=self.enums, objtype=objtype,datamembers=datamembers) ssviewer_utils.dataset_add(**args) result,_ = ssviewer_utils.dataset_list(self.of,self.enums,'subject',pagelen=30,pagenum=1, constraints=[],columns=['code','name','enum','objtype','userobjid']) self.assertListEqual(result,expected_result)
def test_add_period_db(self): expected_result = [[u'330-400']] objtype = 'period' datamembers = {'name': '330-400', 'code': '330'} args = dict(database=self.database, refdatabase=self.database, prepmap=self.prepmap, of=self.of, enums=self.enums, objtype=objtype, datamembers=datamembers) ssviewer_utils.dataset_add(**args) with self.database: _, rows, _ = tbl_rows_get(self.database, "period", ['name'], [["name", "=", "\"330-400\""]]) self.assertEqual(rows, expected_result)
def test_add_adult(self): expected_result = [[u'Jon', u'JB', u'39']] objtype = 'adult' datamembers = {'name': 'Jon', 'code': 'JB', 'prep': 5} args = dict(database=self.database, refdatabase=self.database, prepmap=self.prepmap, of=self.of, enums=self.enums, objtype=objtype, datamembers=datamembers) ssviewer_utils.dataset_add(**args) with self.database: _, rows, _ = tbl_rows_get(self.database, "adult", ['name', 'code', 'enum'], [["name", "=", "\"Jon\""]]) self.assertEqual(rows, expected_result)
def test_internal_dict(self): # test that the internal datamembers/dm dict has the correct keys by asserting correct values # and comparing keys vs a recovered record expected_result = {'status': 'master', 'prep': 5, 'recordtype': 'subject', 'period': '830-910', 'substatus': 'complete', 'source': 'manual', 'session': 'Stan.Math.Tuesday.830-910', 'adult': 'Stan', 'student': 'Nathaniel', 'objtype': 'lesson', 'dow': u'TU', 'userobjid': '1.2.1.2.4', 'subject': 'Math'} datamembers = {'student':'Nathaniel', 'teacher':'Stan', 'subject':'Math', 'period':'830-910', 'recordtype':'subject', 'dow':'Tuesday'} args = dict(database=self.database,refdatabase=self.database,prepmap=self.prepmap,of=self.of,enums=self.enums, datamembers=datamembers) ssviewer_utils.dataset_add(**args) obj_recovered = self.of.query('lesson')[0].dm.keys() obj_add = self.of.query('lesson')[1].dm.keys() obj_recovered.sort() obj_add.sort() # test keys self.assertListEqual(obj_recovered,obj_add) obj = self.of.object_get('lesson',datamembers['userobjid']) obj.dm.pop("id") # test values self.assertEqual(obj.dm,expected_result)
def test_internal_attr(self): # check the member attr values and that the keys are the same between recovered and added objects datamembers = { 'student': 'Nathaniel', 'teacher': 'Stan', 'subject': 'Math', 'period': '830-910', 'recordtype': 'subject', 'dow': 'Tuesday' } args = dict(database=self.database, refdatabase=self.database, prepmap=self.prepmap, of=self.of, enums=self.enums, datamembers=datamembers) obj = ssviewer_utils.dataset_add(**args) self.assertEquals(obj.adult.name, 'Stan') self.assertEquals(obj.dow.name, 'TU') self.assertTrue(hasattr(obj, 'id')) self.assertEquals(obj.objtype.name, 'lesson') self.assertEquals(obj.period.name, '830-910') self.assertEquals(obj.prep.name, 5) self.assertEquals(obj.recordtype.name, 'subject') self.assertEquals(obj.session.name, 'Stan.Math.Tuesday.830-910') self.assertEquals(obj.source.name, 'manual') self.assertEquals(obj.status.name, 'master') self.assertEquals(obj.student.name, 'Nathaniel') self.assertEquals(obj.subject.name, 'Math') self.assertEquals(obj.substatus.name, 'complete') self.assertEquals(obj.userobjid.name, '1.2.1.2.4') obj_addattrnames = [ k for k, v in obj.attr_get_keyval(include_callable=False, include_nondataattr=False) ] obj_recoveredattrnames = [ k for k, v in self.of.query('lesson')[0].attr_get_keyval( include_callable=False, include_nondataattr=False) ] self.assertListEqual(obj_addattrnames, obj_recoveredattrnames)
def test_add_subject(self): expected_result = [[u'Cycling', u'CYCL', u'38']] objtype = 'subject' datamembers = {'name':'Cycling', 'code':'CYCL'} args = dict(database=self.database,refdatabase=self.database,prepmap=self.prepmap,of=self.of,enums=self.enums, objtype=objtype,datamembers=datamembers) obj = ssviewer_utils.dataset_add(**args) with self.database: _,rows,_ = tbl_rows_get(self.database,"subject",['name','code','enum'],[["name","=","\"Cycling\""]]) self.assertEqual(rows,expected_result)
def GET(self,objtype): web.header('Access-Control-Allow-Origin','*') web.header('Access-Control-Allow-Credientials','true') _dm = web.input() datamembers = dict(zip(_dm.keys(),_dm.values())) # these are not required to build the new record and # the service takes ALL members of datamembers and adds them to # the new message payload try: datamembers.pop('page_status') datamembers.pop('source_type') datamembers.pop('source_value') except: pass try: newobj = ssviewer_utils.dataset_add(database,database,of,enums,prepmap, datamembers,objtype,keepversion=True) except ssviewer_utils.OFDuplicateRecord: return "-1" header = "<root><parser><value>drawform</value></parser></root>" if hasattr(newobj.userobjid,"name"): _userobjid = newobj.userobjid.name else: _userobjid = newobj.userobjid if hasattr(newobj.objtype,"name"): _objtype = newobj.objtype.name else: _objtype = newobj.objtype return "id="+_userobjid+","+",".join([k + "=" + _dm[k] for k in _dm.keys()])
def test_add_subject(self): expected_result = [[u'Cycling', u'CYCL', u'38']] objtype = 'subject' datamembers = {'name': 'Cycling', 'code': 'CYCL'} args = dict(database=self.database, refdatabase=self.database, prepmap=self.prepmap, of=self.of, enums=self.enums, objtype=objtype, datamembers=datamembers) obj = ssviewer_utils.dataset_add(**args) with self.database: _, rows, _ = tbl_rows_get(self.database, "subject", ['name', 'code', 'enum'], [["name", "=", "\"Cycling\""]]) self.assertEqual(rows, expected_result)
def test_db_updates_enabled(self): expected_result = [[u'Dylan', u'Clayton', u'1030-1110', u'MO', u'Game Period', u'academic','current'], [u'Stan', u'Nathaniel', u'830-910', u'TU', u'Math', u'academic','current']] datamembers = {'student':'Nathaniel', 'teacher':'Stan', 'subject':'Math', 'period':'830-910', 'recordtype':'academic', 'dow':'Tuesday'} args = dict(database=self.database,refdatabase=self.database,prepmap=self.prepmap,of=self.of,enums=self.enums, datamembers=datamembers,keepversion=True) obj = ssviewer_utils.dataset_add(**args) obj.keepversion=True obj.customtimestamp = "%y%m%d_%H%M%S" with self.database: _,rows,_ = tbl_rows_get(self.database,'lesson',['teacher','student','period','dow','subject','recordtype','__version']) self.assertListEqual(expected_result,rows)
def test_internal_attr(self): # check the member attr values and that the keys are the same between recovered and added objects datamembers = {'student':'Nathaniel', 'teacher':'Stan', 'subject':'Math', 'period':'830-910', 'recordtype':'subject', 'dow':'Tuesday'} args = dict(database=self.database,refdatabase=self.database,prepmap=self.prepmap,of=self.of,enums=self.enums, datamembers=datamembers) obj = ssviewer_utils.dataset_add(**args) self.assertEquals(obj.adult.name,'Stan') self.assertEquals(obj.dow.name,'TU') self.assertTrue(hasattr(obj,'id')) self.assertEquals(obj.objtype.name,'lesson') self.assertEquals(obj.period.name,'830-910') self.assertEquals(obj.prep.name,5) self.assertEquals(obj.recordtype.name,'subject') self.assertEquals(obj.session.name,'Stan.Math.Tuesday.830-910') self.assertEquals(obj.source.name,'manual') self.assertEquals(obj.status.name,'master') self.assertEquals(obj.student.name,'Nathaniel') self.assertEquals(obj.subject.name,'Math') self.assertEquals(obj.substatus.name,'complete') self.assertEquals(obj.userobjid.name,'1.2.1.2.4') obj_addattrnames = [k for k,v in obj.attr_get_keyval(include_callable=False, include_nondataattr=False)] obj_recoveredattrnames = [k for k,v in self.of.query('lesson')[0].attr_get_keyval(include_callable=False, include_nondataattr=False)] self.assertListEqual(obj_addattrnames, obj_recoveredattrnames)
def test_add_period_object(self): expected_result = [[u'330-400']] objtype = 'period' datamembers = {'name':'330-400','code':'330'} args = dict(database=self.database,refdatabase=self.database,prepmap=self.prepmap,of=self.of,enums=self.enums, objtype=objtype,datamembers=datamembers) newobj = ssviewer_utils.dataset_add(**args) with self.database: _,rows,_ = tbl_rows_get(self.database,"period",['name'],[["name","=","\"330-400\""]]) self.assertEqual(rows,expected_result) expected_result = {'code': '330', 'name': '330-400', 'enum': 11, 'objtype': 'period','userobjid': '330-400'} newobj.dm.pop('id') #print newobj.dm,expected_result self.assertEqual(newobj.dm,expected_result)
def test_update_add(self): # check that a record can be updated after it has been added expected_results = [[ 'status', 'substatus', 'recordtype', 'period', 'dow', 'source', 'session', 'adult', 'student', 'id', 'objtype', 'prep', 'userobjid', 'subject' ], [ u'master', u'complete', u'academic', u'1030-1110', u'MO', u'dbinsert', u'Dylan.Game Period.Monday.1030-1110', u'Dylan', u'Clayton', 'lesson', 5, u'4.1.2.37.37', u'Game Period' ], [ 'master', 'complete', 'academic', '1030-1110', u'TU', 'manual', 'Stan.Math.Tuesday.830-910', 'Stan', 'Nathaniel', 'lesson', 5, '1.2.1.2.4', 'Math' ]] datamembers = { 'student': 'Nathaniel', 'teacher': 'Stan', 'subject': 'Math', 'period': '830-910', 'recordtype': 'academic', 'dow': 'Tuesday' } args = dict(database=self.database, refdatabase=self.database, prepmap=self.prepmap, of=self.of, enums=self.enums, datamembers=datamembers, keepversion=True) obj = ssviewer_utils.dataset_add(**args) obj.keepversion = True obj.customtimestamp = "%y%m%d_%H%M%S" newid = obj.update(self.of, 'period', '1030-1110', self.dbname) grid, colnames = ssviewer_utils.dataset_list( self.of, self.enums, columns=[ 'status', 'substatus', 'recordtype', 'period', 'dow', 'source', 'session', 'adult', 'student', 'objtype', 'prep', 'userobjid', 'subject' ]) self.assertListEqual(grid, expected_results) # tests whats in the database expected_results = [[ u'Dylan', u'Clayton', u'1030-1110', u'MO', u'Game Period', u'academic', u'current', u'master', u'complete', u'dbinsert' ], [ u'Stan', u'Nathaniel', u'830-910', u'TU', u'Math', u'academic', u'version', u'master', u'complete', u'manual' ], [ u'Stan', u'Nathaniel', u'1030-1110', u'TU', u'Math', u'academic', u'current', u'master', u'complete', u'manual' ]] with self.database: _, rows, _ = tbl_rows_get(self.database, 'lesson', [ 'teacher', 'student', 'period', 'dow', 'subject', 'recordtype', '__version', 'status', 'substatus', 'source' ]) self.assertListEqual(rows, expected_results)