mongokit icon indicating copy to clipboard operation
mongokit copied to clipboard

User.save() and User.validate()

Open Winnetou opened this issue 11 years ago • 1 comments

In the mongokit.auth.User class '_id' and 'login' meant to be the same. In [1]: from mongokit.auth import User In [2]: me = User() In [3]: me.login, me.email, me.password = 'Winnetou', '[email protected]', 'supersecret' In [4]: me Out [4]: {'_id': 'Winnetou', 'user': {'email': '[email protected]', 'login': 'Winnetou', 'password': u'24f1ae1bd48d66a899a0929ad94643f4ac3d395276ee5135bacea9ee3f1a2746b2660b2f0421cd3f'}}

In [5]: me.validate()


InvalidDocument Traceback (most recent call last) in () --> 1 me.validate()

/usr/local/lib/python2.7/dist-packages/mongokit/document.pyc in validate(self, auto_migrate) 227 # found when validating at init with autorefs 228 self._make_reference(self, self.structure) --> 229 size = self.get_size() 230 (size_limit, size_limit_str) = self._get_size_limit() 231

/usr/local/lib/python2.7/dist-packages/mongokit/document.pyc in get_size(self) 261 except: 262 self._process_custom_type('bson', self, self.structure) --> 263 size = len(BSON.encode(self)) 264 self._process_custom_type('python', self, self.structure) 265 return size

/usr/local/lib/python2.7/dist-packages/bson/init.pyc in encode(cls, document, check_keys, uuid_subtype) 588 .. versionadded:: 1.9 589 """ --> 590 return cls(_dict_to_bson(document, check_keys, uuid_subtype)) 591 592 def decode(self, as_class=dict,

InvalidDocument: Cannot encode object: {'login': 'Winnetou', 'password': u'24f1ae1bd48d66a899a0929ad94643f4ac3d395276ee5135bacea9ee3f1a2746b2660b2f0421cd3f', 'email': '[email protected]'}

In [6]: me.save()


InvalidDocument Traceback (most recent call last) in () -->1 me.save()

/usr/local/lib/python2.7/dist-packages/mongokit/auth.py in save(self, _args, *_kwargs) 97 def save(self, _args, *_kwargs): 98 assert self['_id'] == self['user']['login'] ---> 99 super(User, self).save(_args, *_kwargs)

/usr/local/lib/python2.7/dist-packages/mongokit/document.pyc in save(self, uuid, validate, safe, _args, *_kwargs) 418 """ 419 if validate is True or (validate is None and self.skip_validation is False): --> 420 self.validate(auto_migrate=False) 421 else: 422 if self.use_autorefs:

/usr/local/lib/python2.7/dist-packages/mongokit/document.pyc in validate(self, auto_migrate) 227 # found when validating at init with autorefs 228 self._make_reference(self, self.structure) --> 229 size = self.get_size() 230 (size_limit, size_limit_str) = self._get_size_limit() 231

/usr/local/lib/python2.7/dist-packages/mongokit/document.pyc in get_size(self) 261 except: 262 self._process_custom_type('bson', self, self.structure) --> 263 size = len(BSON.encode(self)) 264 self._process_custom_type('python', self, self.structure) 265 return size

/usr/local/lib/python2.7/dist-packages/bson/init.pyc in encode(cls, document, check_keys, uuid_subtype) 588 .. versionadded:: 1.9 589 """ --> 590 return cls(_dict_to_bson(document, check_keys, uuid_subtype)) 591 592 def decode(self, as_class=dict,

InvalidDocument: Cannot encode object: {'login': 'Winnetou', 'password': u'24f1ae1bd48d66a899a0929ad94643f4ac3d395276ee5135bacea9ee3f1a2746b2660b2f0421cd3f', 'email': '[email protected]'}

Winnetou avatar Nov 23 '14 12:11 Winnetou

Running the test_auth shows the same problem: cannot encode object. It looks like it was never run before (?).

Winnetou avatar Nov 24 '14 20:11 Winnetou