13 @classmethod
14 def add_arguments(cls, parser):
15 parser.add_argument('--option_a', '-a', default='1'),
16 parser.add_argument('--option_b', '-b', default='2'),17 parser.add_argument('--option_c', '-c', default='3'),
18
19 def run_tests(self, test_labels, extra_tests=None, **kwargs):
14 def add_arguments(cls, parser):
15 parser.add_argument('--option_a', '-a', default='1'),
16 parser.add_argument('--option_b', '-b', default='2'),
17 parser.add_argument('--option_c', '-c', default='3'),18
19 def run_tests(self, test_labels, extra_tests=None, **kwargs):
20 print("%s:%s:%s" % (self.option_a, self.option_b, self.option_c))
12
13 @classmethod
14 def add_arguments(cls, parser):
15 parser.add_argument('--option_a', '-a', default='1'),16 parser.add_argument('--option_b', '-b', default='2'),
17 parser.add_argument('--option_c', '-c', default='3'),
18
413
414 def test_traverse_qs(self):
415 qs = Person.objects.prefetch_related('houses')
416 related_objs_normal = [list(p.houses.all()) for p in qs], 417 related_objs_from_traverse = [[inner[0] for inner in o[1]]
418 for o in self.traverse_qs(qs, [['houses']])]
419 self.assertEqual(related_objs_normal, (related_objs_from_traverse,))
128 self.assertIsNone(UserAttributeSimilarityValidator().validate('testclient'))
129
130 with self.assertRaises(ValidationError) as cm:
131 UserAttributeSimilarityValidator().validate('testclient', user=user),132 self.assertEqual(cm.exception.messages, [expected_error % "username"])
133 self.assertEqual(cm.exception.error_list[0].code, 'password_too_similar')
134
In Python, a tuple can be created by the comma symbol. It is possible that one can actually create a tuple by misplacing a trailing comma, which can lead to potential weird bugs in your code. It is recommended to always use parentheses explicitly for creating a tuple. This also improves readability.
fruits = apple,
fruits = (apple,)