def test_get(self): new_words = ["hat", "cat", "rat"] for word in new_words: UserDictionaryWord(word=word, version=57, owner=self.device).put() old_words = ["son", "run"] for word in old_words: UserDictionaryWord(word=word, version=56, owner=self.device).put() request = webapp2.Request.blank('/123/api/udict/since/56') request.method = "GET" response = request.get_response(main.app) diff = json.loads(response.body) self.assertEqual(diff["version"], 57) self.assertEqual(len(diff["words"]), 3) self.assertIn(diff["words"][0]["word"], new_words) self.assertEqual(response.status_int, 200)
def post(self, **kwargs): changes = json.loads(self.request.get("json")) version = _get_max_version(self.user_key) + 1 for el in changes: current_word = (UserDictionaryWord.query( self.user_key, UserDictionaryWord.word == el["word"]).get() or UserDictionaryWord(owner=self.device_key)) current_word.populate(version=version, **el) current_word.put() self.response.write(version)
def post(self): added = self.request.get_all("added[]") removed = self.request.get_all("removed[]") version = _get_max_version(self.user_key) + 1 for word in removed: w = UserDictionaryWord.query( self.user_key, UserDictionaryWord.word == word).get() w.status = "removed" w.version = version w.put() for word in added: UserDictionaryWord(word=word, status="ok", version=version, owner=self.user_key).put()