Skip to content

Commit

Permalink
Add Some Tests
Browse files Browse the repository at this point in the history
  • Loading branch information
super3 committed Aug 26, 2015
1 parent 525b750 commit 2711233
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
8 changes: 8 additions & 0 deletions dataserv/Farmer.py
Expand Up @@ -28,7 +28,9 @@ class Farmer(db.Model):
btc_addr = db.Column(db.String(35), unique=True)
payout_addr = db.Column(db.String(35))
last_seen = db.Column(DateTime, default=datetime.utcnow)
reg_time = db.Column(DateTime, default=datetime.utcnow)
height = db.Column(db.Integer, default=0)
heartbeats = db.Column(db.Integer, default=0)

def __init__(self, btc_addr, last_seen=None):
"""
Expand Down Expand Up @@ -115,6 +117,7 @@ def ping(self):

if time_limit:
farmer.last_seen = datetime.utcnow()
farmer.heartbeats += 1
db.session.commit()
# else just ignore

Expand Down Expand Up @@ -144,3 +147,8 @@ def to_json(self):
"height": self.height
}
return json.dumps(payload)

def expected_heartbeats(self):
"""Number of heartbeats we expect since registration."""
sec_since_reg = (datetime.utcnow() - self.reg_time).seconds
return int(sec_since_reg/app.config["MAX_PING"])
9 changes: 9 additions & 0 deletions tests/test_Farmer.py
Expand Up @@ -77,6 +77,15 @@ def test_ping_time_limit(self):
delta_seconds = int((farmer.last_seen - datetime.utcnow()).seconds)
self.assertNotEqual(delta_seconds, 0)

def test_expected_uptime(self):
farmer = Farmer(addresses["beta"])
farmer.register()

app.config["MAX_PING"] = 1
self.assertEqual(farmer.expected_heartbeats(), 0)
time.sleep(1)
self.assertEqual(farmer.expected_heartbeats(), app.config["MAX_PING"])

def test_height(self):
farmer = Farmer(addresses["gamma"])
farmer.register()
Expand Down

0 comments on commit 2711233

Please sign in to comment.