Skip to content

Commit a1fa982

Browse files
committed
contemplate class attributes
1 parent d243ba2 commit a1fa982

File tree

1 file changed

+22
-22
lines changed

1 file changed

+22
-22
lines changed

koans/about_class_attributes.py

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,36 +13,36 @@ class Dog:
1313

1414
def test_objects_are_objects(self):
1515
fido = self.Dog()
16-
self.assertEqual(__, isinstance(fido, object))
16+
self.assertEqual(True, isinstance(fido, object))
1717

1818
def test_classes_are_types(self):
19-
self.assertEqual(__, self.Dog.__class__ == type)
19+
self.assertEqual(True, self.Dog.__class__ == type)
2020

2121
def test_classes_are_objects_too(self):
22-
self.assertEqual(__, issubclass(self.Dog, object))
22+
self.assertEqual(True, issubclass(self.Dog, object))
2323

2424
def test_objects_have_methods(self):
2525
fido = self.Dog()
26-
self.assertEqual(__, len(dir(fido)))
26+
self.assertEqual(26, len(dir(fido)))
2727

2828
def test_classes_have_methods(self):
29-
self.assertEqual(__, len(dir(self.Dog)))
29+
self.assertEqual(26, len(dir(self.Dog)))
3030

3131
def test_creating_objects_without_defining_a_class(self):
3232
singularity = object()
33-
self.assertEqual(__, len(dir(singularity)))
33+
self.assertEqual(23, len(dir(singularity)))
3434

3535
def test_defining_attributes_on_individual_objects(self):
3636
fido = self.Dog()
3737
fido.legs = 4
3838

39-
self.assertEqual(__, fido.legs)
39+
self.assertEqual(4, fido.legs)
4040

4141
def test_defining_functions_on_individual_objects(self):
4242
fido = self.Dog()
4343
fido.wag = lambda : 'fidos wag'
4444

45-
self.assertEqual(__, fido.wag())
45+
self.assertEqual("fidos wag", fido.wag())
4646

4747
def test_other_objects_are_not_affected_by_these_singleton_functions(self):
4848
fido = self.Dog()
@@ -52,7 +52,7 @@ def wag():
5252
return 'fidos wag'
5353
fido.wag = wag
5454

55-
with self.assertRaises(___): rover.wag()
55+
with self.assertRaises(AttributeError): rover.wag()
5656

5757
# ------------------------------------------------------------------
5858

@@ -75,19 +75,19 @@ def growl(cls):
7575
return "classmethod growl, arg: cls=" + cls.__name__
7676

7777
def test_since_classes_are_objects_you_can_define_singleton_methods_on_them_too(self):
78-
self.assertRegex(self.Dog2.growl(), __)
78+
self.assertRegex(self.Dog2.growl(), "classmethod growl")
7979

8080
def test_classmethods_are_not_independent_of_instance_methods(self):
8181
fido = self.Dog2()
82-
self.assertRegex(fido.growl(), __)
83-
self.assertRegex(self.Dog2.growl(), __)
82+
self.assertRegex(fido.growl(), "classmethod")
83+
self.assertRegex(self.Dog2.growl(), "classmethod")
8484

8585
def test_staticmethods_are_unbound_functions_housed_in_a_class(self):
86-
self.assertRegex(self.Dog2.bark(), __)
86+
self.assertRegex(self.Dog2.bark(), "staticmethod")
8787

8888
def test_staticmethods_also_overshadow_instance_methods(self):
8989
fido = self.Dog2()
90-
self.assertRegex(fido.bark(), __)
90+
self.assertRegex(fido.bark(), "staticmethod")
9191

9292
# ------------------------------------------------------------------
9393

@@ -114,20 +114,20 @@ def set_name(cls, name):
114114

115115
def test_classmethods_can_not_be_used_as_properties(self):
116116
fido = self.Dog3()
117-
with self.assertRaises(___): fido.name = "Fido"
117+
with self.assertRaises(TypeError): fido.name = "Fido"
118118

119119
def test_classes_and_instances_do_not_share_instance_attributes(self):
120120
fido = self.Dog3()
121121
fido.set_name_from_instance("Fido")
122122
fido.set_name("Rover")
123-
self.assertEqual(__, fido.get_name_from_instance())
124-
self.assertEqual(__, self.Dog3.get_name())
123+
self.assertEqual("Fido", fido.get_name_from_instance())
124+
self.assertEqual("Rover", self.Dog3.get_name())
125125

126126
def test_classes_and_instances_do_share_class_attributes(self):
127127
fido = self.Dog3()
128128
fido.set_name("Fido")
129-
self.assertEqual(__, fido.get_name())
130-
self.assertEqual(__, self.Dog3.get_name())
129+
self.assertEqual("Fido", fido.get_name())
130+
self.assertEqual("Fido", self.Dog3.get_name())
131131

132132
# ------------------------------------------------------------------
133133

@@ -142,13 +142,13 @@ def a_static_method():
142142
a_static_method = staticmethod(a_static_method)
143143

144144
def test_you_can_define_class_methods_without_using_a_decorator(self):
145-
self.assertEqual(__, self.Dog4.a_class_method())
145+
self.assertEqual("dogs class method", self.Dog4.a_class_method())
146146

147147
def test_you_can_define_static_methods_without_using_a_decorator(self):
148-
self.assertEqual(__, self.Dog4.a_static_method())
148+
self.assertEqual("dogs static method", self.Dog4.a_static_method())
149149

150150
# ------------------------------------------------------------------
151151

152152
def test_heres_an_easy_way_to_explicitly_call_class_methods_from_instance_methods(self):
153153
fido = self.Dog4()
154-
self.assertEqual(__, fido.__class__.a_class_method())
154+
self.assertEqual("dogs class method", fido.__class__.a_class_method())

0 commit comments

Comments
 (0)