Skip to content

Commit 52c18f8

Browse files
committed
Adding event spec.
1 parent 151e9c0 commit 52c18f8

File tree

2 files changed

+58
-1
lines changed

2 files changed

+58
-1
lines changed

intercom/event.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from intercom.user import Resource
22
from intercom.api_operations.find import Find
3+
from intercom.api_operations.save import Save
34

45

5-
class Event(Resource, Find):
6+
class Event(Resource, Save, Find):
67
pass

tests/unit/event_spec.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import httpretty
2+
import json
3+
import re
4+
import time
5+
from datetime import datetime
6+
from describe import expect
7+
from intercom.user import User
8+
from intercom.event import Event
9+
10+
post = httpretty.POST
11+
r = re.compile
12+
13+
14+
class DescribeIntercomEvent:
15+
16+
def before_each(self, context):
17+
now = time.mktime(datetime.utcnow().timetuple())
18+
self.user = User(
19+
email="jim@example.com",
20+
user_id="12345",
21+
created_at=now,
22+
name="Jim Bob")
23+
self.created_time = now - 300
24+
25+
@httpretty.activate
26+
def it_creates_an_event_with_metadata(self):
27+
data = {
28+
'event_name': 'Eventful 1',
29+
'created_at': self.created_time,
30+
'email': 'joe@example.com',
31+
'metadata': {
32+
'invitee_email': 'pi@example.com',
33+
'invite_code': 'ADDAFRIEND',
34+
'found_date': 12909364407
35+
}
36+
}
37+
httpretty.register_uri(
38+
post, r(r'/events/$'), body=json.dumps(data), status=202)
39+
event = Event.create(**data)
40+
41+
expect('Eventful 1') == event.event_name
42+
expect(event).to.have_attr('metadata')
43+
expect('pi@example.com') == event.metadata['invitee_email']
44+
45+
@httpretty.activate
46+
def it_creates_an_event_without_metadata(self):
47+
data = {
48+
'event_name': 'sale of item',
49+
'email': 'joe@example.com',
50+
}
51+
httpretty.register_uri(
52+
post, r(r'/events/$'), body=json.dumps(data), status=202)
53+
event = Event.create(**data)
54+
55+
expect('sale of item') == event.event_name
56+
expect(event).to_not.have_attr('metadata')

0 commit comments

Comments
 (0)