def dataProvider_testPrintName(self): p1 = Parameter('a', 'a') yield p1, '-', 0, '-a <str>' yield p1, '--param-', 0, '--param-a <str>' yield p1, '--param-', 16, '--param-a <str>' p2 = Parameter('a', True) yield p2, '--param-', 16, '--param-a (bool)'
def dataProvider_testReprStr(self): p1 = Parameter('a', 'a') p1.required = True yield p1, p2 = Parameter('b', 'b') p2.show = True yield p2, p3 = Parameter('c', 2) p3.desc = 'what' yield p3,
def dataProvider_testForceType(self): p1 = Parameter('a', 'a') yield p1, int, 0, ParameterTypeError p2 = Parameter('a', '') yield p2, int, 0, ParameterTypeError p3 = Parameter('a', '0') yield p3, 'list:str', ['0'] yield p3, 'list:bool', [False] p4 = Parameter('aint', '0') yield p4, int, 0 p5 = Parameter('a', 'False') yield p5, bool, 0
def testSetGetAttr(self, name, val, propname, propval, exptval=None, exception=None, msg=None): exptval = exptval or propval p = Parameter(name, val) if exception: self.assertRaisesRegex(exception, msg, setattr, p, propname, propval) else: setattr(p, propname, propval) self.assertEqual(getattr(p, propname), exptval)
def testInit(self, name, value, t, desc=None, exc=None, excmsg=None): desc = desc or [] if excmsg: self.assertRaisesRegex(exc, excmsg, Parameter, name, value) else: param = Parameter(name, value) self.assertIsInstance(param, Parameter) self.assertEqual(param.desc, desc) self.assertFalse(param.required) self.assertTrue(param.show) self.assertEqual(param.type, t) self.assertEqual(param.name, name) if t == 'list': self.assertListEqual(param.value, list(value)) else: self.assertEqual(param.value, value)
def dataProvider_testLoadFile(self): yield self.testdir, False, [] jsonfile = path.join(self.testdir, 'testLoadFile.json') helpers.writeFile( jsonfile, '\n'.join([ '{', ' "a": "2",', ' "a.desc": "Option a",', ' "a.type": "int",', ' "a.required": true', '}', ])) p1 = Parameter('a', 2) p1.desc = "Option a" p1.required = True yield jsonfile, True, [p1] if helpers.moduleInstalled('yaml'): yamlfile = path.join(self.testdir, 'testLoadFile.yaml') helpers.writeFile( yamlfile, '\n'.join([ 'a: 2', 'a.desc: Option a', 'a.type: int', 'a.required: false', 'a.show: true', '', ])) p2 = Parameter('a', 2) p2.desc = "Option a" p2.required = False p2.show = True yield yamlfile, False, [p2] conffile = path.join(self.testdir, 'testLoadFile.conf') helpers.writeFile( conffile, '\n'.join([ '[PARAM1]', 'a = 2', 'a.desc = Option a', 'a.type = int', 'a.required = f', '[PARAM2]', 'a.type = str', 'b:', ' 1', ' 2', 'b.type = list', ])) p3 = Parameter('a', '2') p3.desc = "Option a" p3.required = False p4 = Parameter('b', ['1', '2']) yield conffile, True, [p3, p4]
def dataProvider_testFromParams(self): from pyppl.parameters import Parameter p1 = Parameter('a', 'a1') p2 = Parameter('b', 'b1') p3 = Parameter('c', 'c1') ps = [p1, p2, p3] yield ps, [('a1', 'b1', 'c1')] p1 = Parameter('a', ['a1', 'a2']) p2 = Parameter('b', ['b1', 'b2']) p3 = Parameter('c', ['c1', 'c2']) ps = [p1, p2, p3] yield ps, [('a1', 'b1', 'c1'), ('a2', 'b2', 'c2')] p1 = Parameter('a', []) p2 = Parameter('b', []) p3 = Parameter('c', []) ps = [p1, p2, p3] yield ps, [] p1 = Parameter('a', ['a1', 'a2']) p2 = Parameter('b', ['b1', 'b2']) p3 = Parameter('c', ['c1', 'c2', 'c3']) ps = [p1, p2, p3] yield ps, [], True