Commit 8a0300d1 by David Robinson

Relational queries weren't possible because as_pointer was False from the…

Relational queries weren't possible because as_pointer was False from the Queryset, fixed and added test for relational query. Updated PyPI version.
parent 220a34fb
...@@ -83,7 +83,7 @@ class Queryset(object): ...@@ -83,7 +83,7 @@ class Queryset(object):
@staticmethod @staticmethod
def convert_to_parse(value): def convert_to_parse(value):
from datatypes import ParseType from datatypes import ParseType
return ParseType.convert_to_parse(value) return ParseType.convert_to_parse(value, as_pointer=True)
@classmethod @classmethod
def extract_filter_operator(cls, parameter): def extract_filter_operator(cls, parameter):
......
...@@ -53,6 +53,10 @@ GLOBAL_JSON_TEXT = """{ ...@@ -53,6 +53,10 @@ GLOBAL_JSON_TEXT = """{
""" """
class Game(Object):
pass
class GameScore(Object): class GameScore(Object):
pass pass
...@@ -215,10 +219,15 @@ class TestQuery(unittest.TestCase): ...@@ -215,10 +219,15 @@ class TestQuery(unittest.TestCase):
# first delete any that exist # first delete any that exist
for s in GameScore.Query.all(): for s in GameScore.Query.all():
s.delete() s.delete()
for g in Game.Query.all():
g.delete()
self.game = Game(title="Candyland")
self.game.save()
self.scores = [ self.scores = [
GameScore(score=s, player_name='John Doe') for s in range(1, 6) GameScore(score=s, player_name='John Doe', game=self.game)
] for s in range(1, 6)]
for s in self.scores: for s in self.scores:
s.save() s.save()
...@@ -239,6 +248,11 @@ class TestQuery(unittest.TestCase): ...@@ -239,6 +248,11 @@ class TestQuery(unittest.TestCase):
self.assert_(qobj.score == s.score, self.assert_(qobj.score == s.score,
"Getting object with .filter() failed") "Getting object with .filter() failed")
# test relational query with other Objects
num_scores = GameScore.Query.filter(game=self.game).count()
self.assert_(num_scores == len(self.scores),
"Relational query with .filter() failed")
def testGetExceptions(self): def testGetExceptions(self):
'''test possible exceptions raised by Queryset.get() method''' '''test possible exceptions raised by Queryset.get() method'''
self.assertRaises(query.QueryResourceDoesNotExist, self.assertRaises(query.QueryResourceDoesNotExist,
...@@ -246,7 +260,6 @@ class TestQuery(unittest.TestCase): ...@@ -246,7 +260,6 @@ class TestQuery(unittest.TestCase):
self.assertRaises(query.QueryResourceMultipleResultsReturned, self.assertRaises(query.QueryResourceMultipleResultsReturned,
GameScore.Query.filter(score__gt=3).get) GameScore.Query.filter(score__gt=3).get)
def testCanQueryDates(self): def testCanQueryDates(self):
last_week = datetime.datetime.now() - datetime.timedelta(days=7) last_week = datetime.datetime.now() - datetime.timedelta(days=7)
score = GameScore(name='test', last_played=last_week) score = GameScore(name='test', last_played=last_week)
...@@ -306,9 +319,10 @@ class TestQuery(unittest.TestCase): ...@@ -306,9 +319,10 @@ class TestQuery(unittest.TestCase):
'Could not make inequality comparison with dates') 'Could not make inequality comparison with dates')
def tearDown(self): def tearDown(self):
'''delete all GameScore objects''' '''delete all GameScore and Game objects'''
for s in GameScore.Query.all(): for s in GameScore.Query.all():
s.delete() s.delete()
self.game.delete()
class TestFunction(unittest.TestCase): class TestFunction(unittest.TestCase):
......
...@@ -21,7 +21,7 @@ class TestCommand(Command): ...@@ -21,7 +21,7 @@ class TestCommand(Command):
setup( setup(
name='parse_rest', name='parse_rest',
version='0.2.20130312', version='0.2.20131001',
description='A client library for Parse.com\'.s REST API', description='A client library for Parse.com\'.s REST API',
url='https://github.com/dgrtwo/ParsePy', url='https://github.com/dgrtwo/ParsePy',
packages=['parse_rest'], packages=['parse_rest'],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment