Skip to content

Commit c5a000e

Browse files
committed
contemplate inheritance
1 parent 43079d9 commit c5a000e

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

koans/about_inheritance.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,31 +23,31 @@ def bark(self):
2323
return "yip"
2424

2525
def test_subclasses_have_the_parent_as_an_ancestor(self):
26-
self.assertEqual(__, issubclass(self.Chihuahua, self.Dog))
26+
self.assertEqual(True, issubclass(self.Chihuahua, self.Dog))
2727

2828
def test_all_classes_in_python_3_ultimately_inherit_from_object_class(self):
29-
self.assertEqual(__, issubclass(self.Chihuahua, object))
29+
self.assertEqual(True, issubclass(self.Chihuahua, object))
3030

3131
# Note: This isn't the case in Python 2. In that version you have
3232
# to inherit from a built in class or object explicitly
3333

3434
def test_instances_inherit_behavior_from_parent_class(self):
3535
chico = self.Chihuahua("Chico")
36-
self.assertEqual(__, chico.name)
36+
self.assertEqual("Chico", chico.name)
3737

3838
def test_subclasses_add_new_behavior(self):
3939
chico = self.Chihuahua("Chico")
40-
self.assertEqual(__, chico.wag())
40+
self.assertEqual("happy", chico.wag())
4141

4242
fido = self.Dog("Fido")
43-
with self.assertRaises(___): fido.wag()
43+
with self.assertRaises(AttributeError): fido.wag()
4444

4545
def test_subclasses_can_modify_existing_behavior(self):
4646
chico = self.Chihuahua("Chico")
47-
self.assertEqual(__, chico.bark())
47+
self.assertEqual("yip", chico.bark())
4848

4949
fido = self.Dog("Fido")
50-
self.assertEqual(__, fido.bark())
50+
self.assertEqual("WOOF", fido.bark())
5151

5252
# ------------------------------------------------------------------
5353

@@ -58,7 +58,7 @@ def bark(self):
5858

5959
def test_subclasses_can_invoke_parent_behavior_via_super(self):
6060
ralph = self.BullDog("Ralph")
61-
self.assertEqual(__, ralph.bark())
61+
self.assertEqual("WOOF, GRR", ralph.bark())
6262

6363
# ------------------------------------------------------------------
6464

@@ -68,7 +68,7 @@ def growl(self):
6868

6969
def test_super_works_across_methods(self):
7070
george = self.GreatDane("George")
71-
self.assertEqual(__, george.growl())
71+
self.assertEqual("WOOF, GROWL", george.growl())
7272

7373
# ---------------------------------------------------------
7474

@@ -82,8 +82,8 @@ def __init__(self, name):
8282

8383
def test_base_init_does_not_get_called_automatically(self):
8484
snoopy = self.Pug("Snoopy")
85-
with self.assertRaises(___): name = snoopy.name
85+
with self.assertRaises(AttributeError): name = snoopy.name
8686

8787
def test_base_init_has_to_be_called_explicitly(self):
8888
boxer = self.Greyhound("Boxer")
89-
self.assertEqual(__, boxer.name)
89+
self.assertEqual("Boxer", boxer.name)

koans/about_multiple_inheritance.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -87,30 +87,30 @@ def here(self):
8787

8888
def test_normal_methods_are_available_in_the_object(self):
8989
jeff = self.Spiderpig()
90-
self.assertRegex(jeff.speak(), __)
90+
self.assertRegex(jeff.speak(), "This looks like a job for Spiderpig!")
9191

9292
def test_base_class_methods_are_also_available_in_the_object(self):
9393
jeff = self.Spiderpig()
9494
try:
9595
jeff.set_name("Rover")
9696
except:
9797
self.fail("This should not happen")
98-
self.assertEqual(__, jeff.can_climb_walls())
98+
self.assertEqual(True, jeff.can_climb_walls())
9999

100100
def test_base_class_methods_can_affect_instance_variables_in_the_object(self):
101101
jeff = self.Spiderpig()
102-
self.assertEqual(__, jeff.name)
102+
self.assertEqual("Jeff", jeff.name)
103103

104104
jeff.set_name("Rover")
105-
self.assertEqual(__, jeff.name)
105+
self.assertEqual("Rover", jeff.name)
106106

107107
def test_left_hand_side_inheritance_tends_to_be_higher_priority(self):
108108
jeff = self.Spiderpig()
109-
self.assertEqual(__, jeff.color())
109+
self.assertEqual("pink", jeff.color())
110110

111111
def test_super_class_methods_are_higher_priority_than_super_super_classes(self):
112112
jeff = self.Spiderpig()
113-
self.assertEqual(__, jeff.legs())
113+
self.assertEqual(8, jeff.legs())
114114

115115
def test_we_can_inspect_the_method_resolution_order(self):
116116
#
@@ -119,10 +119,10 @@ def test_we_can_inspect_the_method_resolution_order(self):
119119
mro = type(self.Spiderpig()).mro()
120120
self.assertEqual('Spiderpig', mro[0].__name__)
121121
self.assertEqual('Pig', mro[1].__name__)
122-
self.assertEqual(__, mro[2].__name__)
123-
self.assertEqual(__, mro[3].__name__)
124-
self.assertEqual(__, mro[4].__name__)
125-
self.assertEqual(__, mro[5].__name__)
122+
self.assertEqual("Spider", mro[2].__name__)
123+
self.assertEqual("Animal", mro[3].__name__)
124+
self.assertEqual("Nameable", mro[4].__name__)
125+
self.assertEqual("object", mro[5].__name__)
126126

127127
def test_confirm_the_mro_controls_the_calling_order(self):
128128
jeff = self.Spiderpig()
@@ -132,7 +132,7 @@ def test_confirm_the_mro_controls_the_calling_order(self):
132132
self.assertRegex(next.here(), 'Pig')
133133

134134
next = super(AboutMultipleInheritance.Pig, jeff)
135-
self.assertRegex(next.here(), __)
135+
self.assertRegex(next.here(), "Spider")
136136

137137
# Hang on a minute?!? That last class name might be a super class of
138138
# the 'jeff' object, but its hardly a superclass of Pig, is it?

0 commit comments

Comments
 (0)