File tree Expand file tree Collapse file tree 2 files changed +77
-0
lines changed Expand file tree Collapse file tree 2 files changed +77
-0
lines changed Original file line number Diff line number Diff line change 1+ class Jar :
2+ """Jar base class"""
3+ def __init__ (self , capacity : int = 12 ):
4+ self .size = 0
5+ self .capacity = capacity # use setter
6+
7+
8+ def deposit (self , v ):
9+ if self .__size + v > self .__capacity :
10+ raise ValueError
11+ else :
12+ self .__size += v
13+
14+
15+ def withdraw (self , v ):
16+ if v > self .__size :
17+ raise ValueError
18+ else :
19+ self .__size -= v
20+
21+ def __str__ (self ):
22+ cockie = "🍪"
23+ return (cockie * self .__size )
24+
25+ def __repr__ (self ):
26+ return self .__str__
27+
28+ @property
29+ def capacity (self ):
30+ return (self .__capacity )
31+
32+ @capacity .setter
33+ def capacity (self , a ):
34+ a = int (a )
35+ if a < 0 :
36+ raise ValueError
37+ self .__capacity = a
38+
39+
40+ @property
41+ def size (self ):
42+ return (self .__size )
43+
44+ @size .setter
45+ def size (self , a ):
46+ self .__size = a
Original file line number Diff line number Diff line change 1+ import pytest
2+ from jar import Jar
3+
4+
5+ def test_create_jar_default_values ():
6+ jar = Jar ()
7+ assert jar .size == 0
8+ assert jar .capacity == 12
9+
10+
11+
12+ def test_capacity_valueerror_int ():
13+ with pytest .raises (ValueError ):
14+ jar = Jar (capacity = - 1 )
15+ with pytest .raises (ValueError ):
16+ jar = Jar (capacity = "asd" )
17+
18+
19+ def test_adding ():
20+ jar = Jar ()
21+ jar .deposit (8 )
22+ with pytest .raises (ValueError ):
23+ jar .deposit (12 )
24+
25+ def test_sub ():
26+ jar = Jar ()
27+ jar .deposit (12 )
28+ jar .withdraw (12 )
29+ with pytest .raises (ValueError ):
30+ jar .withdraw (12 )
31+
You can’t perform that action at this time.
0 commit comments