Skip to content

Commit 737a9aa

Browse files
bite 19
1 parent 5cb4aeb commit 737a9aa

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@
1616
/117/README.md
1717
/64/README.md
1818
/128/README.md
19+
/19/README.md

19/simple_property.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from datetime import datetime
2+
3+
NOW = datetime.now()
4+
5+
# print(datetime.strptime("11-11-2018", "%d-%m-%Y")-NOW)
6+
7+
8+
class Promo:
9+
10+
def __init__(self, name, expiredate):
11+
self.name = name
12+
self.expiredate = expiredate.strftime("%d/%m/%Y")
13+
self._expired = self.expired
14+
15+
@property
16+
def expired(self):
17+
return datetime.strptime(self.expiredate, "%d/%m/%Y") < NOW
18+
19+
@expired.setter
20+
def expired(self, expiredate):
21+
if expiredate-NOW < 0:
22+
self.expired = 1
23+
else:
24+
self.expired = 0
25+
26+
27+
# print(Promo("dead", "22/12/2020").expired)

19/test_simple_property.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from datetime import timedelta
2+
import inspect
3+
4+
from simple_property import Promo, NOW
5+
6+
7+
def test_promo_expired():
8+
past_time = NOW - timedelta(seconds=3)
9+
twitter_promo = Promo('twitter', past_time)
10+
assert twitter_promo.expired
11+
12+
13+
def test_promo_not_expired():
14+
future_date = NOW + timedelta(days=1)
15+
newsletter_promo = Promo('newsletter', future_date)
16+
assert not newsletter_promo.expired
17+
18+
19+
def test_uses_property():
20+
assert 'property' in inspect.getsource(Promo)

0 commit comments

Comments
 (0)