コード例 #1
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)
コード例 #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)
コード例 #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)
コード例 #4
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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #13
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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #19
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)
コード例 #20
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)
コード例 #21
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)
コード例 #22
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)
コード例 #23
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)
コード例 #24
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)
コード例 #25
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)
コード例 #26
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)
コード例 #27
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)
コード例 #28
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)
コード例 #29
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)
コード例 #30
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)
コード例 #31
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)
コード例 #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)
コード例 #33
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))
コード例 #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))
コード例 #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)
コード例 #36
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)
コード例 #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))
コード例 #38
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))
コード例 #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))
コード例 #40
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))
コード例 #41
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)
コード例 #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)