def test_keys(self): self.assertTrue(api.dotted({}).keys() == []) self.assertTrue( api.dotted({ 'foo': 0, 'bar': 1 }).keys() == ['foo', 'bar']) self.assertTrue(api.dotted({'foo': {'bar': 1}}).keys() == ['foo'])
def test_keys(self): self.assertEqual(api.dotted({}).keys(), []) self.assertCountEqual( api.dotted({ 'foo': 0, 'bar': 1 }).keys(), ['foo', 'bar']) self.assertCountEqual(api.dotted({'foo': {'bar': 1}}).keys(), ['foo'])
def test_items(self): self.assertEqual(api.dotted({}).keys(), []) self.assertCountEqual( api.dotted({ 'foo': 0, 'bar': 1 }).items(), [('foo', 0), ('bar', 1)]) self.assertIsInstance( api.dotted({ 'foo': { 'bar': 1 } }).items()[0][1], dotteddict.DottedDict)
def test_items(self): self.assertTrue(api.dotted({}).keys() == []) self.assertTrue( api.dotted({ 'foo': 0, 'bar': 1 }).items() == [('foo', 0), ('bar', 1)]) self.assertTrue( isinstance( api.dotted({ 'foo': { 'bar': 1 } }).items()[0][1], dotteddict.DottedDict))
def assertRaisesValidationError(self,f): r = self.request(dotted({})) try: f.validate(r) except validation.FormError: return raise ValueError
def _expand_id(id, doc): eid = [] if '*' in id: prefix, suffix = id.split('*') items = api.dotted(doc)[prefix[:-1]] key = prefix + '%(n)s' + suffix return '%%%%(%s)s'%key,len(items) else: return '%%%%(%s)s'%id,1
def build_request(self, data): """ Helps us create WebOb-like request to feed Formish's forms. Inspired by formish/tests/testish/testish/lib/forms.py """ request = webob.Request.blank(cherrypy.url(), environ={'REQUEST_METHOD': 'POST'}) fields = [] for k, v in flatten(dotted(data)): fields.append((k, v)) request.body = urlencode(fields) return request
def test_eq(self): one = {'foo': 0, 'bar': 1} two = {'foo': {'bar': 1}} self.assertTrue(api.dotted(one) == one) self.assertTrue(api.dotted(one) == api.dotted(one)) self.assertFalse(api.dotted(one) == two) self.assertFalse(api.dotted(one) == api.dotted(two))
def test_eq(self): one = ['foo', 'bar'] two = ['foo', 'rab'] self.assertTrue(api.dotted(one) == one) self.assertTrue(api.dotted(one) == api.dotted(one)) self.assertFalse(api.dotted(one) == two) self.assertFalse(api.dotted(one) == api.dotted(two))
def build_request(formname, data): d = dotted(data) e = {'REQUEST_METHOD': 'POST'} request = webob.Request.blank('/',environ=e) fields = [] fields.append( ('_charset)','UTF-8') ) fields.append( ('__formish_form__','form') ) for k, v in d.dotteditems(): fields.append( (k,v) ) fields.append( ('submit','Submit') ) request.body = urlencode( fields ) return request
def _factory(db, doc): ixdoc = xappy.UnprocessedDocument() ixdoc.id = doc['_id'] for D in i: for data in D['data']: data, num_items = expand(data, doc) for n in xrange(num_items): if 'factory' in D: out = import_func(D['factory'])(doc) if isinstance(out, ListType): for index_text in out: print 'INDEX_TEXT',index_text ixdoc.fields.append(xappy.Field(D['name'], index_text)) else: index_text = out print 'INDEX_TEXT',index_text ixdoc.fields.append(xappy.Field(D['name'], index_text)) else: index_text = (data%{'n':n})%api.dotted(doc) print 'INDEX_TEXT',index_text ixdoc.fields.append(xappy.Field(D['name'], index_text)) return ixdoc
def _factory(db, doc): ixdoc = xappy.UnprocessedDocument() ixdoc.id = doc['_id'] for D in i: for data in D['data']: data, num_items = expand(data, doc) for n in xrange(num_items): if 'factory' in D: out = import_func(D['factory'])(doc) if isinstance(out, ListType): for index_text in out: print 'INDEX_TEXT', index_text ixdoc.fields.append( xappy.Field(D['name'], index_text)) else: index_text = out print 'INDEX_TEXT', index_text ixdoc.fields.append( xappy.Field(D['name'], index_text)) else: index_text = (data % {'n': n}) % api.dotted(doc) print 'INDEX_TEXT', index_text ixdoc.fields.append(xappy.Field(D['name'], index_text)) return ixdoc
def test_set_dotted(self): d = {} dd = api.dotted(d) api.set(dd, 'foo', 1) self.assertEqual(dd, {'foo': 1})
def test_wrap_dotted(self): l = [] dl = api.dotted(l) self.assertTrue(isinstance(dl, dottedlist.DottedList)) self.assertTrue(dl is api.dotted(dl))
def test_contains(self): dl = api.dotted(['foo', 'bar']) self.assertTrue('bar' in dl) self.assertFalse(1 in dl)
def test_set_dotted(self): d = {} dd = api.dotted(d) api.set(dd, 'foo', 1)
def test_items(self): self.assertEqual(api.dotted([]).items(), []) self.assertEqual(api.dotted(['foo', 'bar']).items(), [('0', 'foo'), ('1', 'bar')]) self.assertIsInstance(api.dotted([['foo']]).items()[0][1], dottedlist.DottedList)
def test_setitem_unwrap(self): l = ['foo', 'bar'] api.dotted(l)['0'] = api.dotted([]) self.assertEqual(l[0], []) self.assertNotIsInstance(l[0], dottedlist.DottedList)
def test_keys(self): self.assertEqual(api.dotted({}).keys(), []) self.assertCountEqual(api.dotted({'foo': 0, 'bar': 1}).keys(), ['foo', 'bar']) self.assertCountEqual(api.dotted({'foo': {'bar': 1}}).keys(), ['foo'])
def test_setitem(self): l = ['foo', 'bar'] api.dotted(l)['0'] = 'wee' self.assertEqual(l[0], 'wee')
def test_setitem(self): d = {} api.dotted(d)['foo'] = 'bar' self.assertEqual(d['foo'], 'bar')
def test_setitem_unwrap(self): d = {} api.dotted(d)['foo'] = api.dotted({}) self.assertEqual(d['foo'], {}) self.assertNotIsInstance(d['foo'], dotteddict.DottedDict)
def test_getitem_missing(self): self.assertRaises(KeyError, api.dotted({}).__getitem__, 'foo')
def test_repr(self): dl = api.dotted(['foo', 'bar']) self.assertEqual(repr(dl), '''<DottedList "['foo', 'bar']">''')
def test_setitem(self): l = ['foo', 'bar'] api.dotted(l)['0'] = 'wee' self.assertTrue(l[0] == 'wee')
def test_items(self): self.assertEqual(api.dotted({}).keys(), []) self.assertCountEqual(api.dotted({'foo': 0, 'bar': 1}).items(), [('foo', 0), ('bar', 1)]) self.assertIsInstance(api.dotted({'foo': {'bar': 1}}).items()[0][1], dotteddict.DottedDict)
def test_iter(self): values = ['foo', 'bar'] for value in api.dotted(['foo', 'bar']): self.assertEqual(value, values.pop(0))
def test_len(self): self.assertEqual(len(api.dotted({})), 0) self.assertEqual(len(api.dotted({'foo': 0, 'bar': 1})), 2) self.assertEqual(len(api.dotted({'foo': {'bar': 1}})), 1)
def test_keys(self): self.assertEqual(api.dotted([]).keys(), []) self.assertEqual(api.dotted(['foo', 'bar']).keys(), ['0', '1']) self.assertEqual(api.dotted([['foo']]).keys(), ['0'])
def test_items(self): self.assertEqual(api.dotted([]).items(), []) self.assertEqual( api.dotted(['foo', 'bar']).items(), [('0', 'foo'), ('1', 'bar')]) self.assertIsInstance( api.dotted([['foo']]).items()[0][1], dottedlist.DottedList)
def test_len(self): self.assertEqual(len(api.dotted([])), 0) self.assertEqual(len(api.dotted(['foo', 'bar'])), 2)
def test_iter(self): keys = ['foo', 'bar'] for key in api.dotted({'foo': 0, 'bar': 1}): self.assertIn(key, keys) keys.remove(key)
def test_keys(self): self.assertTrue(api.dotted([]).keys() == []) self.assertTrue(api.dotted(['foo', 'bar']).keys() == ['0', '1']) self.assertTrue(api.dotted([['foo']]).keys() == ['0'])
def test_get_dotted(self): d = {'foo': 'bar'} dd = api.dotted(d) self.assertTrue(api.get(dd, 'foo') == 'bar')
def test_wrap_dotted(self): d = {} dd = api.dotted(d) self.assertTrue(isinstance(dd, dotteddict.DottedDict)) self.assertTrue(dd is api.dotted(dd))
def test_get_dotted(self): d = {'foo': 'bar'} dd = api.dotted(d) self.assertEqual(api.get(dd, 'foo'), 'bar')
def test_getitem(self): dl = api.dotted(['foo', 'bar']) self.assertTrue(dl['0'] == 'foo') self.assertRaises(KeyError, dl.__getitem__, '2')
def test_setitem_unwrap(self): d = {} api.dotted(d)['foo'] = api.dotted({}) self.assertTrue(d['foo'] == {}) self.assertTrue(not isinstance(d['foo'], dotteddict.DottedDict))
def test_setitem_unwrap(self): l = ['foo', 'bar'] api.dotted(l)['0'] = api.dotted([]) self.assertTrue(l[0] == []) self.assertTrue(not isinstance(l[0], dottedlist.DottedList))
def test_items(self): self.assertTrue(api.dotted([]).items() == []) self.assertTrue(api.dotted(['foo', 'bar']).items() == [('0', 'foo'), ('1', 'bar')]) self.assertTrue(isinstance(api.dotted([['foo']]).items()[0][1], dottedlist.DottedList))
def test_getitem(self): dl = api.dotted(['foo', 'bar']) self.assertEqual(dl['0'], 'foo') self.assertEqual(dl.get('0'), 'foo') self.assertRaises(KeyError, dl.__getitem__, '2')
def test_getitem(self): d = {'foo': 'bar'} dd = api.dotted(d) self.assertTrue(dd['foo'] == 'bar')
def test_setitem(self): d = {} api.dotted(d)['foo'] = 'bar' self.assertTrue(d['foo'] == 'bar')
def test_wrap_dotted(self): l = [] dl = api.dotted(l) self.assertIsInstance(dl, dottedlist.DottedList) self.assertIs(dl, api.dotted(dl))