def test_contacts_with_no_contacts(self): """Ensure merging contacts with no contacts.""" from sosbeacon.event.student_marker import StudentMarker from sosbeacon.event.student_marker import _build_contact_map contacts = _build_contact_map([{ 'name': 'Sam Smith', 'methods': [{ 'value': '123432' }, { 'value': '*****@*****.**' }] }, { 'name': 'Josh Jones', 'methods': [{ 'value': '443241' }, { 'value': '*****@*****.**' }] }, { 'name': 'Betty Boop', 'methods': [{ 'value': '321133' }, { 'value': '*****@*****.**' }] }]) left = StudentMarker(contacts=copy.deepcopy(contacts)) right = StudentMarker() left.merge(right) self.assertEqual(contacts, left.contacts)
def test_merge_overlapping_contacts(self): """Ensure merging overlapping contacts.""" from sosbeacon.event.student_marker import StudentMarker from sosbeacon.event.student_marker import _build_contact_map contacts = _build_contact_map([ { 'name': 'Sam Smith', 'methods': [{'value': '123432'}, {'value': '*****@*****.**'}] }, { 'name': 'Josh Jones', 'methods': [{'value': '443241'}, {'value': '*****@*****.**'}] }, { 'name': 'Betty Boop', 'methods': [{'value': '321133'}, {'value': '*****@*****.**'}] } ]) left = StudentMarker(contacts=copy.deepcopy(contacts)) right = StudentMarker(contacts=copy.deepcopy(contacts)) left.merge(right) for contact in contacts.values(): contact['acked'] = None contact['acked_at'] = None contact['sent'] = None self.assertEqual(contacts, left.contacts)
def test_merge_no_contacts_with_contacts(self): """Ensure merging no contacts with contacts.""" from sosbeacon.event.student_marker import StudentMarker from sosbeacon.event.student_marker import _build_contact_map contacts = _build_contact_map([ { 'name': 'Sam Smith', 'methods': [{'value': '123432'}, {'value': '*****@*****.**'}], 'acked': True }, { 'name': 'Josh Jones', 'methods': [{'value': '443241'}, {'value': '*****@*****.**'}], 'acked_at': 123432 }, { 'name': 'Betty Boop', 'methods': [{'value': '321133'}, {'value': '*****@*****.**'}], 'sent': 23423 } ]) left = StudentMarker() right = StudentMarker(contacts=copy.deepcopy(contacts)) left.merge(right) self.assertEqual(contacts, left.contacts)
def test_merge_different_names(self): """Ensure merging with different name.""" from sosbeacon.event.student_marker import StudentMarker left = StudentMarker(name="billy") right = StudentMarker(name="joe") left.merge(right) self.assertEqual("billy", left.name)
def test_merge_no_name(self): """Ensure merging without name.""" from sosbeacon.event.student_marker import StudentMarker left = StudentMarker() right = StudentMarker() left.merge(right) self.assertFalse(left.name)
def test_merge_non_broadcasts(self): """Ensure merging two non-broadcast.""" from sosbeacon.event.student_marker import StudentMarker left = StudentMarker(last_broadcast=None) right = StudentMarker(last_broadcast=None) left.merge(right) self.assertFalse(left.last_broadcast)
def test_merge_name_with_no_name(self): """Ensure merging name with missing name.""" from sosbeacon.event.student_marker import StudentMarker left = StudentMarker(name="joe") right = StudentMarker() left.merge(right) self.assertEqual("joe", left.name)
def test_merge_different_names(self): """Ensure merging with different name.""" from sosbeacon.event.student_marker import StudentMarker left = StudentMarker(name="billy") right = StudentMarker(name="joe") left.merge(right) self.assertEqual("billy", left.name)
def test_merge_non_broadcasts(self): """Ensure merging two non-broadcast.""" from sosbeacon.event.student_marker import StudentMarker left = StudentMarker(last_broadcast=None) right = StudentMarker(last_broadcast=None) left.merge(right) self.assertFalse(left.last_broadcast)
def test_merge_no_name(self): """Ensure merging without name.""" from sosbeacon.event.student_marker import StudentMarker left = StudentMarker() right = StudentMarker() left.merge(right) self.assertFalse(left.name)
def test_merge_name_with_no_name(self): """Ensure merging name with missing name.""" from sosbeacon.event.student_marker import StudentMarker left = StudentMarker(name="joe") right = StudentMarker() left.merge(right) self.assertEqual("joe", left.name)
def test_merge_contacts_into_ack_info(self): """Ensure merging contact list into ack info works.""" from sosbeacon.event.student_marker import StudentMarker from sosbeacon.event.student_marker import _build_contact_map contacts = _build_contact_map([{ 'name': 'Sam Smith', 'methods': [{ 'value': '123432' }, { 'value': '*****@*****.**' }] }, { 'name': 'Josh Jones', 'methods': [{ 'value': '443241' }, { 'value': '*****@*****.**' }] }, { 'name': 'Betty Boop', 'methods': [{ 'value': '321133' }, { 'value': '*****@*****.**' }] }]) acked_contact = _build_contact_map([{ 'name': 'Sam Smith', 'methods': [{ 'value': '123432' }, { 'value': '*****@*****.**' }], 'acked': True, 'acked_at': 1234231, 'sent': 232311, }]) left = StudentMarker(contacts=copy.deepcopy(acked_contact)) right = StudentMarker(contacts=copy.deepcopy(contacts)) left.merge(right) contacts.update(acked_contact) self.assertEqual(contacts, left.contacts) self.assertEqual(True, left.acknowledged) self.assertEqual(1234231, left.acknowledged_at)
def test_merge_broadcast(self): """Ensure merging broadcast markers.""" from datetime import datetime from sosbeacon.event.student_marker import StudentMarker broadcasted = datetime.now() left = StudentMarker(last_broadcast=broadcasted) right = StudentMarker(last_broadcast=broadcasted) left.merge(right) self.assertEqual(broadcasted, left.last_broadcast)
def test_merge_broadcast(self): """Ensure merging broadcast markers.""" from datetime import datetime from sosbeacon.event.student_marker import StudentMarker broadcasted = datetime.now() left = StudentMarker(last_broadcast=broadcasted) right = StudentMarker(last_broadcast=broadcasted) left.merge(right) self.assertEqual(broadcasted, left.last_broadcast)
def test_merge_broadcast_with_older(self): """Ensure merging more recently broadcast marker with older marker.""" from datetime import datetime, timedelta from sosbeacon.event.student_marker import StudentMarker broadcasted = datetime.now() prior_broadcasted = datetime.now() + timedelta(minutes=-5) left = StudentMarker(last_broadcast=broadcasted) right = StudentMarker(last_broadcast=prior_broadcasted) left.merge(right) self.assertEqual(broadcasted, left.last_broadcast)
def test_merge_broadcast_with_older(self): """Ensure merging more recently broadcast marker with older marker.""" from datetime import datetime, timedelta from sosbeacon.event.student_marker import StudentMarker broadcasted = datetime.now() prior_broadcasted = datetime.now() + timedelta(minutes=-5) left = StudentMarker(last_broadcast=broadcasted) right = StudentMarker(last_broadcast=prior_broadcasted) left.merge(right) self.assertEqual(broadcasted, left.last_broadcast)
def test_merge_overlapping_contacts(self): """Ensure merging overlapping contacts.""" from sosbeacon.event.student_marker import StudentMarker from sosbeacon.event.student_marker import _build_contact_map contacts = _build_contact_map([{ 'name': 'Sam Smith', 'methods': [{ 'value': '123432' }, { 'value': '*****@*****.**' }] }, { 'name': 'Josh Jones', 'methods': [{ 'value': '443241' }, { 'value': '*****@*****.**' }] }, { 'name': 'Betty Boop', 'methods': [{ 'value': '321133' }, { 'value': '*****@*****.**' }] }]) left = StudentMarker(contacts=copy.deepcopy(contacts)) right = StudentMarker(contacts=copy.deepcopy(contacts)) left.merge(right) for contact in contacts.values(): contact['acked'] = None contact['acked_at'] = None contact['sent'] = None self.assertEqual(contacts, left.contacts)
def test_merge_contacts_into_ack_info(self): """Ensure merging contact list into ack info works.""" from sosbeacon.event.student_marker import StudentMarker from sosbeacon.event.student_marker import _build_contact_map contacts = _build_contact_map([ { 'name': 'Sam Smith', 'methods': [{'value': '123432'}, {'value': '*****@*****.**'}] }, { 'name': 'Josh Jones', 'methods': [{'value': '443241'}, {'value': '*****@*****.**'}] }, { 'name': 'Betty Boop', 'methods': [{'value': '321133'}, {'value': '*****@*****.**'}] } ]) acked_contact = _build_contact_map([ { 'name': 'Sam Smith', 'methods': [{'value': '123432'}, {'value': '*****@*****.**'}], 'acked': True, 'acked_at': 1234231, 'sent': 232311, } ]) left = StudentMarker(contacts=copy.deepcopy(acked_contact)) right = StudentMarker(contacts=copy.deepcopy(contacts)) left.merge(right) contacts.update(acked_contact) self.assertEqual(contacts, left.contacts) self.assertEqual(True, left.acknowledged) self.assertEqual(1234231, left.acknowledged_at)