def testUpdateOne(self): expected = get_model_dict(self.models[0]) expected.update(char=str(uuid4())) r = self.task.delay(self.MODEL_SYMBOL, expected) self.assertEquals(expected, r.get()) updated = get_model_dict(SimpleModel.objects.get(pk=expected['id'])) self.assertEquals(expected, updated)
def testGetSetOne(self): new = get_model_dict(self.models[0]) new.update(char=str(uuid4())) r = self.task.delay(self.MODEL_SYMBOL, new) old = get_model_dict(self.models[0]) self.assertEquals(old, r.get()) updated = get_model_dict(SimpleModel.objects.get(pk=old['id'])) self.assertEquals(new, updated)
def testDeleteMany(self): expected = (get_model_dict(self.models[0]), get_model_dict(self.models[1])) r = self.task.delay(self.MODEL_SYMBOL, expected) self.assertEquals([], r.get()) ids = [v['id'] for v in expected] self.assertEquals(0, SimpleModel.objects.filter(id__in=ids).count())
def testUpdatePartial(self): char_val = str(uuid4()) expected = get_model_dict(self.models[0]) expected.update(char=char_val) r = self.task.delay(self.MODEL_SYMBOL, {'char': char_val, 'id': expected['id']}) self.assertDictEqual(expected, r.get()) updated = get_model_dict(SimpleModel.objects.get(pk=expected['id'])) self.assertEquals(expected, updated)
def testUpdateMulti(self): expected = [get_model_dict(e) for e in self.models[0:2]] for e in expected: e.update(char=str(uuid4())) r = self.task.delay(self.MODEL_SYMBOL, expected) result = r.get() self.assertEquals(2, len(result)) self.assertEquals(expected, result) updated = [get_model_dict(o) for o in SimpleModel.objects.all()[0:2]] self.assertEquals(expected, updated)
def testUpdatePartial(self): char_val = str(uuid4()) expected = get_model_dict(self.models[0]) expected.update(char=char_val) r = self.task.delay(self.MODEL_SYMBOL, { 'char': char_val, 'id': expected['id'] }) self.assertDictEqual(expected, r.get()) updated = get_model_dict(SimpleModel.objects.get(pk=expected['id'])) self.assertEquals(expected, updated)
def testGetSetMulti(self): new = [get_model_dict(e) for e in self.models[0:2]] for e in new: e.update(char=str(uuid4())) r = self.task.delay(self.MODEL_SYMBOL, new) result = r.get() self.assertEquals(2, len(result)) old = [get_model_dict(e) for e in self.models[0:2]] self.assertEquals(old, result) updated = [get_model_dict(o) for o in SimpleModel.objects.all()[0:2]] self.assertEquals(new, updated)
def testExcludeWithQ(self): """ Exclude with Q-object works nice. """ r = tasks.filter.delay(self.MODEL_SYMBOL, exclude_q=Q(pk__gte=self.models[1].pk)) expected = get_model_dict(self.models[0]) self.assertEquals(expected, r.get()[0])
def testSerializerFields(self): expected = get_model_dict(self.models[0]) field = list(expected.keys())[0] r = tasks.filter.delay(self.MODEL_SYMBOL, filters={'pk': expected['id']}, fields=[field]) self.assertEquals({field: expected[field]}, r.get()[0])
def testDeleteOne(self): expected = get_model_dict(self.models[0]) r = self.task.delay(self.MODEL_SYMBOL, expected) self.assertEquals(None, r.get()) self.assertEquals(0, SimpleModel.objects.filter(id=expected['id']).count())
def testExclude(self): """ Exclude seems good. """ exclude_ids = [m.pk for m in self.models[1:]] r = tasks.filter.delay(self.MODEL_SYMBOL, exclude={'pk__in': exclude_ids}) expected = get_model_dict(self.models[0]) self.assertEquals(expected, r.get()[0])
def testTransformWithDefaults(self): defaults = dict(bart='simpson') before = get_model_dict(self.models[0]) after = self._transform_keys(self.transform_map, before) after.update(defaults) r = self.task.delay(self.transform_map, before, defaults=defaults) self.assertEquals(after, r.get())
def testDeleteOne(self): expected = get_model_dict(self.models[0]) r = self.task.delay(self.MODEL_SYMBOL, expected) self.assertEquals(None, r.get()) self.assertEquals( 0, SimpleModel.objects.filter(id=expected['id']).count())
def testNoExistSerializer(self): """ Test not existing serializer """ char_val = str(uuid4()) expected = get_model_dict(self.models[0]) with self.assertRaises(ModelTaskError): self.task.delay(self.MODEL_SYMBOL, {'char': char_val, 'id': expected['id']}, serializer_cls='not.existing.symbol').get()
def testFiltersWithLookupsAndQ(self): filter_ids = [m.id for m in self.models[3:]] filter_Q = Q(pk__lte=self.models[3].pk) r = tasks.filter.delay(self.MODEL_SYMBOL, filters={'pk__in': filter_ids}, filters_Q=filter_Q) expected = get_model_dict(self.models[3]) self.assertEquals(len(r.get()), 1) self.assertEquals(expected, r.get()[0])
def testNoValidSerializer(self): """ Test not valid serializer """ char_val = str(uuid4()) expected = get_model_dict(self.models[0]) with self.assertRaisesRegexp(ModelTaskError, r'not a DRF serializer'): serializer_cls = 'celery_rpc.tests.models:SimpleModel' self.task.delay(self.MODEL_SYMBOL, {'char': char_val, 'id': expected['id']}, serializer_cls=serializer_cls).get()
def testSerializer(self): """ Test serializer_cls """ char_val = str(uuid4()) expected = get_model_dict(self.models[0]) expected.update(char=char_val) serializer_cls = "{}:{}".format(SimpleTaskSerializer.__module__, SimpleTaskSerializer.__name__) r = self.task.delay(self.MODEL_SYMBOL, {'char':char_val, 'id': expected['id']}, serializer_cls=serializer_cls) self.assertDictEqual({'id': expected['id']}, r.get())
def testNoExistSerializer(self): """ Test not existing serializer """ char_val = str(uuid4()) expected = get_model_dict(self.models[0]) with self.assertRaises(ModelTaskError): with unpack_exception(): self.task.delay(self.MODEL_SYMBOL, { 'char': char_val, 'id': expected['id'] }, serializer_cls='not.existing.symbol').get()
def testNoValidSerializer(self): """ Test not valid serializer """ char_val = str(uuid4()) expected = get_model_dict(self.models[0]) with self.assertRaisesRegexp(ModelTaskError, r'not a DRF serializer'): serializer_cls = 'celery_rpc.tests.models:SimpleModel' with unpack_exception(): self.task.delay(self.MODEL_SYMBOL, { 'char': char_val, 'id': expected['id'] }, serializer_cls=serializer_cls).get()
def testSerializer(self): """ Test serializer_cls """ char_val = str(uuid4()) expected = get_model_dict(self.models[0]) expected.update(char=char_val) serializer_cls = "{}:{}".format(SimpleTaskSerializer.__module__, SimpleTaskSerializer.__name__) r = self.task.delay(self.MODEL_SYMBOL, { 'char': char_val, 'id': expected['id'] }, serializer_cls=serializer_cls) self.assertDictEqual({'id': expected['id']}, r.get())
def testExcludeWithLookupsAndQ(self): """ Exclude all except first and last by mix of `exclude` and `exclude_Q` seems able. """ exclude_char = [m.char for m in self.models[1:]] exclude_Q = Q(pk__lte=self.models[3].pk) r = tasks.filter.delay(self.MODEL_SYMBOL, exclude={'char__in': exclude_char}, exclude_Q=exclude_Q) result = r.get() self.assertEquals(len(result), 2) for i in 4, 0: expected = get_model_dict(self.models[i]) r = result.pop() self.assertEquals(expected, r)
def testOffset(self): r = tasks.filter.delay(self.MODEL_SYMBOL, offset=1) expected = get_model_dict(self.models[1]) self.assertEquals(expected, r.get()[0])
def testFilters(self): expected = get_model_dict(self.models[0]) r = tasks.filter.delay(self.MODEL_SYMBOL, filters={'pk': expected['id']}) self.assertEquals(expected, r.get()[0])
def testTransformDict(self): before = get_model_dict(self.models[0]) after = self._transform_keys(self.transform_map, before) r = self.task.delay(self.transform_map, before) self.assertEquals(after, r.get())
def testFiltersWithQ(self): expected = get_model_dict(self.models[0]) r = tasks.filter.delay(self.MODEL_SYMBOL, filters_Q=Q(pk=expected['id'])) self.assertEquals(expected, r.get()[0])