Пример #1
0
    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)
Пример #6
0
    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)
Пример #7
0
    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)
Пример #8
0
    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)
Пример #10
0
    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)
Пример #12
0
    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)
Пример #13
0
    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)
Пример #16
0
    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)
Пример #17
0
    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)