@@ -106,13 +106,17 @@ def test_Training():
106106 assert inspect .isclass (homework .Training ), (
107107 '`Training` должен быть классом.'
108108 )
109- for attr , value in {'LEN_STEP' : 0.65 , 'M_IN_KM' : 1000 , 'MIN_IN_H' : 60 }.items ():
109+ for attr , value in {
110+ 'LEN_STEP' : 0.65 ,
111+ 'M_IN_KM' : 1000 ,
112+ 'MIN_IN_H' : 60
113+ }.items ():
110114 assert hasattr (homework .Training , attr ), (
111- f'У класса `Training` должен быть атрибут `{ attr } `'
115+ f'У класса `Training` должна быть константа `{ attr } `'
112116 )
113117 assert getattr (homework .Training , attr ) == value , (
114- 'У класса `Training` должен быть '
115- f'атрибут `{ attr } ` со значением `{ value } `'
118+ 'У класса `Training` должна быть '
119+ f'константа `{ attr } ` со значением `{ value } `'
116120 )
117121 training = homework .Training
118122 training_signature = inspect .signature (training )
@@ -123,13 +127,13 @@ def test_Training():
123127 f' параметр { param } .'
124128 )
125129 assert 'LEN_STEP' in list (training .__dict__ ), (
126- 'Задайте атрибут `LEN_STEP` в классе `Training`'
130+ 'Задайте константу `LEN_STEP` в классе `Training`'
127131 )
128132 assert training .LEN_STEP == 0.65 , (
129133 'Длина шага в классе `Training` должна быть равна 0.65'
130134 )
131135 assert 'M_IN_KM' in list (training .__dict__ ), (
132- 'Задайте атрибут `M_IN_KM` в классе `Training`'
136+ 'Задайте константу `M_IN_KM` в классе `Training`'
133137 )
134138 assert training .M_IN_KM == 1000 , (
135139 'В классе `Training` укажите правильное '
@@ -191,11 +195,6 @@ def test_Training_get_spent_calories(input_data):
191195 assert callable (training .get_spent_calories ), (
192196 '`get_spent_calories` должна быть функцией.'
193197 )
194- assert training .get_spent_calories () is None , (
195- 'Метод `get_spent_calories` класса `Training` не должен '
196- 'высчитывать потреченные калории, так как для каждого типа '
197- 'тренировки своя формула подсчета калорий.'
198- )
199198
200199
201200def test_Training_show_training_info (monkeypatch ):
@@ -226,18 +225,16 @@ def test_Swimming():
226225 assert issubclass (homework .Swimming , homework .Training ), (
227226 'Класс `Swimming` должен наследоваться от класса `Training`.'
228227 )
229- for attr , value in {
230- 'LEN_STEP' : 1.38 ,
228+ Swimming_attr_values = homework . Swimming . __dict__ . values ()
229+ for _ , value in {
231230 'CALORIES_MEAN_SPEED_SHIFT' : 1.1 ,
232231 'CALORIES_WEIGHT_MULTIPLIER' : 2 ,
233232 }.items ():
234- assert hasattr (homework .Swimming , attr ), (
235- f'У класса `Swimming` должен быть атрибут `{ attr } `'
236- )
237- assert getattr (homework .Swimming , attr ) == value , (
238- 'У класса `Swimming` должен быть '
239- f'атрибут `{ attr } ` со значением `{ value } `'
233+ assert value in Swimming_attr_values , (
234+ 'У класса `Swimming` должна быть '
235+ f'константа со значением `{ value } `'
240236 )
237+
241238 swimming = homework .Swimming
242239 swimming_signature = inspect .signature (swimming )
243240 swimming_signature_list = list (swimming_signature .parameters )
@@ -247,7 +244,7 @@ def test_Swimming():
247244 f' должен быть параметр { param } .'
248245 )
249246 assert 'LEN_STEP' in list (swimming .__dict__ ), (
250- 'Задайте атрибут `LEN_STEP` в классе `Swimming`'
247+ 'Задайте константу `LEN_STEP` в классе `Swimming`'
251248 )
252249 assert swimming .LEN_STEP == 1.38 , (
253250 'Длина гребка в классе `Swimming` должна быть равна 1.38'
@@ -270,12 +267,12 @@ def test_Swimming_get_mean(input_data, expected):
270267
271268@pytest .mark .parametrize ('input_data, expected' , [
272269 ([720 , 1 , 80 , 25 , 40 ], 336.0 ),
273- ([420 , 4 , 20 , 42 , 4 ], 182.72000000000003 ),
270+ ([420 , 4 , 20 , 42 , 4 ], 182.72 ),
274271 ([1206 , 12 , 6 , 12 , 6 ], 159.264 ),
275272])
276273def test_Swimming_get_spent_calories (input_data , expected ):
277274 swimming = homework .Swimming (* input_data )
278- result = swimming .get_spent_calories ()
275+ result = round ( swimming .get_spent_calories (), 3 )
279276 assert type (result ) == float , (
280277 'Переопределите метод `get_spent_calories` в классе `Swimming`.'
281278 )
@@ -299,11 +296,11 @@ def test_SportsWalking():
299296 'CM_IN_M' : 100
300297 }.items ():
301298 assert hasattr (homework .SportsWalking , attr ), (
302- f'У класса `SportsWalking` должен быть атрибут `{ attr } `'
299+ f'У класса `SportsWalking` должна быть константа `{ attr } `'
303300 )
304- assert getattr (homework .SportsWalking , attr ) == value , (
305- 'У класса `SportsWalking` должен быть '
306- f'атрибут `{ attr } ` со значением `{ value } `'
301+ assert round ( getattr (homework .SportsWalking , attr ), 3 ) == value , (
302+ 'У класса `SportsWalking` дожна быть '
303+ f'константа `{ attr } ` со значением `{ value } `'
307304 )
308305 sports_walking = homework .SportsWalking
309306 sports_walking_signature = inspect .signature (sports_walking )
@@ -316,13 +313,13 @@ def test_SportsWalking():
316313
317314
318315@pytest .mark .parametrize ('input_data, expected' , [
319- ([9000 , 1 , 75 , 180 ], 349.2517475250001 ),
320- ([420 , 4 , 20 , 42 ], 168.11931219846002 ),
321- ([1206 , 12 , 6 , 12 ], 151.54430943785593 ),
316+ ([9000 , 1 , 75 , 180 ], 349.252 ),
317+ ([420 , 4 , 20 , 42 ], 168.119 ),
318+ ([1206 , 12 , 6 , 12 ], 151.544 ),
322319])
323320def test_SportsWalking_get_spent_calories (input_data , expected ):
324321 sports_walking = homework .SportsWalking (* input_data )
325- result = sports_walking .get_spent_calories ()
322+ result = round ( sports_walking .get_spent_calories (), 3 )
326323 assert type (result ) == float , (
327324 'Переопределите метод `get_spent_calories` в классе `SportsWalking`.'
328325 )
@@ -338,27 +335,28 @@ def test_Running():
338335 assert issubclass (homework .Running , homework .Training ), (
339336 'Класс `Running` должен наследоваться от класса `Training`.'
340337 )
341- for attr , value in {'CALORIES_MEAN_SPEED_MULTIPLIER' : 18 , 'CALORIES_MEAN_SPEED_SHIFT' : 1.79 }.items ():
342- assert hasattr (homework .Running , attr ), (
343- f'У класса `Running` должен быть атрибут `{ attr } `'
344- )
345- assert getattr (homework .Running , attr ) == value , (
346- 'У класса `Running` должен быть '
347- f'атрибут `{ attr } ` со значением `{ value } `'
338+ Running_attr_values = homework .Running .__dict__ .values ()
339+ for _ , value in {
340+ 'CALORIES_MEAN_SPEED_MULTIPLIER' : 18 ,
341+ 'CALORIES_MEAN_SPEED_SHIFT' : 1.79
342+ }.items ():
343+ assert value in Running_attr_values , (
344+ 'У класса `Running` должна быть '
345+ f'константа со значением `{ value } `'
348346 )
349347
350348
351349@pytest .mark .parametrize ('input_data, expected' , [
352- ([9000 , 1 , 75 ], 481.90500000000003 ),
353- ([420 , 4 , 20 ], 14.488800000000001 ),
354- ([1206 , 12 , 6 ], 12.812472 ),
350+ ([9000 , 1 , 75 ], 481.905 ),
351+ ([420 , 4 , 20 ], 14.489 ),
352+ ([1206 , 12 , 6 ], 12.812 ),
355353])
356354def test_Running_get_spent_calories (input_data , expected ):
357355 running = homework .Running (* input_data )
358356 assert hasattr (running , 'get_spent_calories' ), (
359357 'Создайте метод `get_spent_calories` в классе `Running`.'
360358 )
361- result = running .get_spent_calories ()
359+ result = round ( running .get_spent_calories (), 3 )
362360 assert type (result ) == float , (
363361 'Переопределите метод `get_spent_calories` в классе `Running`.'
364362 )
0 commit comments