def test_merge_overlapping_students_incomplete_contacts(self):
        """Ensure merging students with overlaps with different contacts."""
        from sosbeacon.event.contact_marker import ContactMarker

        students_1 = {
            '123': [{
                'name': 'Billy Bob',
                'methods': ['324321', '*****@*****.**']
            }],
            '345': [{
                'name': 'Josh Jones',
                'methods': ['443241', '*****@*****.**']
            }]
        }

        students_2 = {
            '123': [{
                'name': 'Sam Smith',
                'methods': ['123432', '*****@*****.**']
            }],
            '345': [{
                'name': 'Jenny Benny',
                'methods': ['234232', '*****@*****.**']
            }]
        }

        left = ContactMarker(students=copy.deepcopy(students_1))
        right = ContactMarker(students=copy.deepcopy(students_2))
        left.merge(right)

        for key in students_1:
            students_1[key].extend(students_2[key])
        self.assertEqual(students_1, left.students)
Exemple #2
0
    def test_merge_overlapping_students_incomplete_contacts(self):
        """Ensure merging students with overlaps with different contacts."""
        from sosbeacon.event.contact_marker import ContactMarker

        students_1 = {
            '123': [{
                'name': 'Billy Bob',
                'methods': ['324321', '*****@*****.**']
            }],
            '345': [{
                'name': 'Josh Jones',
                'methods': ['443241', '*****@*****.**']
            }]
        }

        students_2 = {
            '123': [{
                'name': 'Sam Smith',
                'methods': ['123432', '*****@*****.**']
            }],
            '345': [{
                'name': 'Jenny Benny',
                'methods': ['234232', '*****@*****.**']
            }]
        }

        left = ContactMarker(students=copy.deepcopy(students_1))
        right = ContactMarker(students=copy.deepcopy(students_2))
        left.merge(right)

        for key in students_1:
            students_1[key].extend(students_2[key])
        self.assertEqual(students_1, left.students)
Exemple #3
0
    def test_merge_students(self):
        """Ensure merging students."""
        from sosbeacon.event.contact_marker import ContactMarker

        students_1 = {
            '123': [{
                'name': 'Sam Smith',
                'methods': ['123432', '*****@*****.**']
            }],
            '345': [{
                'name': 'Josh Jones',
                'methods': ['443241', '*****@*****.**']
            }],
            '231': [{
                'name': 'Betty Boop',
                'methods': ['321133', '*****@*****.**']
            }],
        }

        students_2 = {
            'ABC': [{
                'name': 'Julie James',
                'methods': ['5433423', '*****@*****.**']
            }],
        }

        left = ContactMarker(students=copy.deepcopy(students_1))
        right = ContactMarker(students=copy.deepcopy(students_2))
        left.merge(right)

        students_1.update(students_2)

        self.assertEqual(students_1, left.students)
    def test_merge_students(self):
        """Ensure merging students."""
        from sosbeacon.event.contact_marker import ContactMarker

        students_1 = {
            '123': [{
                'name': 'Sam Smith',
                'methods': ['123432', '*****@*****.**']
            }],
            '345': [{
                'name': 'Josh Jones',
                'methods': ['443241', '*****@*****.**']
            }],
            '231': [{
                'name': 'Betty Boop',
                'methods': ['321133', '*****@*****.**']
            }],
        }

        students_2 = {
            'ABC': [{
                'name': 'Julie James',
                'methods': ['5433423', '*****@*****.**']
            }],
        }

        left = ContactMarker(students=copy.deepcopy(students_1))
        right = ContactMarker(students=copy.deepcopy(students_2))
        left.merge(right)

        students_1.update(students_2)

        self.assertEqual(students_1, left.students)
Exemple #5
0
    def test_merge_ack_to_non_ack(self):
        """Ensure merging acked to non-acked acks."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(acknowledged=False)
        right = ContactMarker(acknowledged=True)
        left.merge(right)
        self.assertTrue(left.acknowledged)
Exemple #6
0
    def test_merge_no_students(self):
        """Ensure merging with no students."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker()
        right = ContactMarker()
        left.merge(right)
        self.assertIsNone(left.students)
Exemple #7
0
    def test_merge_different_name(self):
        """Ensure merging with two different names."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(name='Name 3')
        right = ContactMarker(name='Name 4')
        left.merge(right)
        self.assertEqual('Name 3', left.name)
Exemple #8
0
    def test_merge_non_ack(self):
        """Ensure merging two non-acked doesn't ack."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(acknowledged=False)
        right = ContactMarker(acknowledged=False)
        left.merge(right)
        self.assertFalse(left.acknowledged)
Exemple #9
0
    def test_merge_missing_name(self):
        """Ensure merging missing name with name."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(name='Name 2')
        right = ContactMarker()
        left.merge(right)
        self.assertEqual('Name 2', left.name)
Exemple #10
0
    def test_merge_new_name(self):
        """Ensure merging no name with new name."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker()
        right = ContactMarker(name='Name 1')
        left.merge(right)
        self.assertEqual('Name 1', left.name)
Exemple #11
0
    def test_merge_no_names(self):
        """Ensure merging with no names."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker()
        right = ContactMarker()
        left.merge(right)
        self.assertEqual(None, left.name)
Exemple #12
0
    def test_merge_different_short_id(self):
        """Ensure merging with different short ids."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(short_id='N123')
        right = ContactMarker(short_id='Z312')
        left.merge(right)
        self.assertEqual('N123', left.short_id)
    def test_merge_last_viewed_date_with_same(self):
        """Ensure merging acked with acked preserves ack date."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(last_viewed_date=334)
        right = ContactMarker(last_viewed_date=334)
        left.merge(right)
        self.assertEqual(334, left.last_viewed_date)
Exemple #14
0
    def test_merge_last_viewed_date_with_same(self):
        """Ensure merging acked with acked preserves ack date."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(last_viewed_date=334)
        right = ContactMarker(last_viewed_date=334)
        left.merge(right)
        self.assertEqual(334, left.last_viewed_date)
Exemple #15
0
    def test_merge_last_viewed_date(self):
        """Ensure merging acked to non-acked sets view date."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(last_viewed_date=0)
        right = ContactMarker(last_viewed_date=12345)
        left.merge(right)
        self.assertEqual(12345, left.last_viewed_date)
Exemple #16
0
    def test_merge_unviewed(self):
        """Ensure merging two non-acked doesn't set view date."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker()
        right = ContactMarker()
        left.merge(right)
        self.assertEqual(0, left.last_viewed_date)
Exemple #17
0
    def test_merge_last_viewed_date_with_non_acked(self):
        """Ensure merging non-acked with acked preserves view date."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(last_viewed_date=321123)
        right = ContactMarker(last_viewed_date=0)
        left.merge(right)
        self.assertEqual(321123, left.last_viewed_date)
Exemple #18
0
    def test_merge_acks(self):
        """Ensure merging two acked stays acked."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(acknowledged=True)
        right = ContactMarker(acknowledged=True)
        left.merge(right)
        self.assertTrue(left.acknowledged)
    def test_merge_no_names(self):
        """Ensure merging with no names."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker()
        right = ContactMarker()
        left.merge(right)
        self.assertEqual(None, left.name)
    def test_merge_no_students(self):
        """Ensure merging with no students."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker()
        right = ContactMarker()
        left.merge(right)
        self.assertIsNone(left.students)
    def test_merge_unviewed(self):
        """Ensure merging two non-acked doesn't set view date."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker()
        right = ContactMarker()
        left.merge(right)
        self.assertEqual(0, left.last_viewed_date)
    def test_merge_non_ack(self):
        """Ensure merging two non-acked doesn't ack."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(acknowledged=False)
        right = ContactMarker(acknowledged=False)
        left.merge(right)
        self.assertFalse(left.acknowledged)
    def test_merge_ack_to_non_ack(self):
        """Ensure merging acked to non-acked acks."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(acknowledged=False)
        right = ContactMarker(acknowledged=True)
        left.merge(right)
        self.assertTrue(left.acknowledged)
    def test_merge_last_viewed_date(self):
        """Ensure merging acked to non-acked sets view date."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(last_viewed_date=0)
        right = ContactMarker(last_viewed_date=12345)
        left.merge(right)
        self.assertEqual(12345, left.last_viewed_date)
    def test_merge_different_name(self):
        """Ensure merging with two different names."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(name='Name 3')
        right = ContactMarker(name='Name 4')
        left.merge(right)
        self.assertEqual('Name 3', left.name)
    def test_merge_last_viewed_date_with_non_acked(self):
        """Ensure merging non-acked with acked preserves view date."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(last_viewed_date=321123)
        right = ContactMarker(last_viewed_date=0)
        left.merge(right)
        self.assertEqual(321123, left.last_viewed_date)
    def test_merge_new_name(self):
        """Ensure merging no name with new name."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker()
        right = ContactMarker(name='Name 1')
        left.merge(right)
        self.assertEqual('Name 1', left.name)
    def test_merge_missing_name(self):
        """Ensure merging missing name with name."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(name='Name 2')
        right = ContactMarker()
        left.merge(right)
        self.assertEqual('Name 2', left.name)
    def test_merge_acks(self):
        """Ensure merging two acked stays acked."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(acknowledged=True)
        right = ContactMarker(acknowledged=True)
        left.merge(right)
        self.assertTrue(left.acknowledged)
    def test_merge_different_short_id(self):
        """Ensure merging with different short ids."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(short_id='N123')
        right = ContactMarker(short_id='Z312')
        left.merge(right)
        self.assertEqual('N123', left.short_id)
    def test_merge_missing_short_id(self):
        """Ensure merging short id with no short id."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(short_id='N213')
        right = ContactMarker()
        left.merge(right)
        self.assertEqual('N213', left.short_id)
Exemple #32
0
    def test_merge_missing_short_id(self):
        """Ensure merging short id with no short id."""
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(short_id='N213')
        right = ContactMarker()
        left.merge(right)
        self.assertEqual('N213', left.short_id)
    def test_merge_no_methods_with_methods(self):
        """Ensure merging no methods with methods preserves methods."""
        from sosbeacon.event.contact_marker import ContactMarker

        methods = ['123312', '*****@*****.**']

        left = ContactMarker()
        right = ContactMarker(methods=methods[:])
        left.merge(right)
        self.assertEqual(sorted(methods), sorted(left.methods))
Exemple #34
0
    def test_merge_no_methods_with_methods(self):
        """Ensure merging no methods with methods preserves methods."""
        from sosbeacon.event.contact_marker import ContactMarker

        methods = ['123312', '*****@*****.**']

        left = ContactMarker()
        right = ContactMarker(methods=methods[:])
        left.merge(right)
        self.assertEqual(sorted(methods), sorted(left.methods))
Exemple #35
0
    def test_merge_last_viewed_date_with_larger(self):
        """Ensure merging more recently acked with earlier acked keeps most
        recent ack date.
        """
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(last_viewed_date=20)
        right = ContactMarker(last_viewed_date=200)
        left.merge(right)
        self.assertEqual(200, left.last_viewed_date)
    def test_merge_last_viewed_date_with_larger(self):
        """Ensure merging more recently acked with earlier acked keeps most
        recent ack date.
        """
        from sosbeacon.event.contact_marker import ContactMarker

        left = ContactMarker(last_viewed_date=20)
        right = ContactMarker(last_viewed_date=200)
        left.merge(right)
        self.assertEqual(200, left.last_viewed_date)
Exemple #37
0
    def test_merge_same_methods(self):
        """Ensure merging same methods doesn't dupe."""
        from sosbeacon.event.contact_marker import ContactMarker

        methods = [
            '1234567890', '*****@*****.**', '2098765432',
            '*****@*****.**'
        ]

        left = ContactMarker(methods=methods[:])
        right = ContactMarker(methods=methods[:])
        left.merge(right)
        self.assertEqual(sorted(set(methods[:])), sorted(left.methods))
    def test_merge_same_methods(self):
        """Ensure merging same methods doesn't dupe."""
        from sosbeacon.event.contact_marker import ContactMarker

        methods = [
            '1234567890', '*****@*****.**',
            '2098765432', '*****@*****.**'
        ]

        left = ContactMarker(methods=methods[:])
        right = ContactMarker(methods=methods[:])
        left.merge(right)
        self.assertEqual(sorted(set(methods[:])), sorted(left.methods))
Exemple #39
0
    def test_merge_methods_with_overlapping_methods(self):
        """Ensure merging new methods with overlapping methods doesn't dupe."""
        from sosbeacon.event.contact_marker import ContactMarker

        base_methods = [
            '1234567890', '*****@*****.**', '2098765432',
            '*****@*****.**'
        ]

        methods_1 = base_methods + ['123312', '*****@*****.**']
        methods_2 = base_methods + ['848423', '*****@*****.**']

        left = ContactMarker(methods=methods_1[:])
        right = ContactMarker(methods=methods_2[:])
        left.merge(right)
        self.assertEqual(sorted(set(methods_1 + methods_2)),
                         sorted(left.methods))
    def test_merge_methods_with_overlapping_methods(self):
        """Ensure merging new methods with overlapping methods doesn't dupe."""
        from sosbeacon.event.contact_marker import ContactMarker

        base_methods = [
            '1234567890', '*****@*****.**',
            '2098765432', '*****@*****.**'
        ]

        methods_1 = base_methods + ['123312', '*****@*****.**']
        methods_2 = base_methods + ['848423', '*****@*****.**']

        left = ContactMarker(methods=methods_1[:])
        right = ContactMarker(methods=methods_2[:])
        left.merge(right)
        self.assertEqual(sorted(set(methods_1 + methods_2)),
                         sorted(left.methods))
    def test_merge_no_students_with_students(self):
        """Ensure merging no students with students."""
        from sosbeacon.event.contact_marker import ContactMarker

        students = {
            '123': [{
                'name': 'Sam Smith',
                'methods': ['123432', '*****@*****.**']
            }],
            '345': [{
                'name': 'Josh Jones',
                'methods': ['443241', '*****@*****.**']
            }],
            '231': [{
                'name': 'Betty Boop',
                'methods': ['321133', '*****@*****.**']
            }],
        }

        left = ContactMarker()
        right = ContactMarker(students=copy.deepcopy(students))
        left.merge(right)
        self.assertEqual(students, left.students)
Exemple #42
0
    def test_merge_no_students_with_students(self):
        """Ensure merging no students with students."""
        from sosbeacon.event.contact_marker import ContactMarker

        students = {
            '123': [{
                'name': 'Sam Smith',
                'methods': ['123432', '*****@*****.**']
            }],
            '345': [{
                'name': 'Josh Jones',
                'methods': ['443241', '*****@*****.**']
            }],
            '231': [{
                'name': 'Betty Boop',
                'methods': ['321133', '*****@*****.**']
            }],
        }

        left = ContactMarker()
        right = ContactMarker(students=copy.deepcopy(students))
        left.merge(right)
        self.assertEqual(students, left.students)