Пример #1
0
 def test_anniversary_does_not_support_setting_text_values_for_v3(self):
     vcard = _create_test_vcard(version="3.0")
     wrapper = carddav_object.VCardWrapper(vcard)
     with self.assertLogs(level='WARNING'):
         wrapper.birthday = 'some time yesterday'
     wrapper.vcard.validate()
     self.assertIsNone(wrapper.anniversary)
Пример #2
0
 def test_birthday_supports_setting_date_objects(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     date = datetime.datetime(2018, 2, 1)
     wrapper.birthday = date
     wrapper.vcard.validate()
     self.assertEqual(wrapper.birthday, date)
Пример #3
0
 def test_anniversary_supports_setting_datetime_objects(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     date = datetime.datetime(2018, 2, 1, 19, 29, 31)
     wrapper.anniversary = date
     wrapper.vcard.validate()
     self.assertEqual(wrapper.anniversary, date)
Пример #4
0
 def test_deletes_fields_given_in_upper_case(self):
     vcard = _create_test_vcard()
     expected = vcard.serialize()
     vcard.add('FOO').value = 'bar'
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._delete_vcard_object('FOO')
     self.assertEqual(wrapper.vcard.serialize(), expected)
Пример #5
0
 def test_keeps_other_fields(self):
     vcard = _create_test_vcard(foo='bar')
     expected = vcard.serialize()
     vcard.add('BAR').value = 'baz'
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._delete_vcard_object('BAR')
     self.assertEqual(wrapper.vcard.serialize(), expected)
Пример #6
0
 def test_anniversary_supports_setting_text_values_for_v4(self):
     vcard = _create_test_vcard(version="4.0")
     wrapper = carddav_object.VCardWrapper(vcard)
     date = 'some time yesterday'
     wrapper.anniversary = date
     wrapper.vcard.validate()
     self.assertEqual(wrapper.anniversary, date)
Пример #7
0
 def test_stores_vcard_object_unmodified(self):
     vcard = _create_test_vcard()
     expected = vcard.serialize()
     wrapper = carddav_object.VCardWrapper(vcard)
     # assert that it is the same object
     self.assertIs(wrapper.vcard, vcard)
     # assert that it (the serialization) was not changed
     self.assertEqual(wrapper.vcard.serialize(), expected)
Пример #8
0
 def test_setting_and_getting_notes(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._add_note('First long note')
     wrapper._add_note('Second long note\nwith newline')
     self.assertListEqual(
         wrapper.notes,
         ['First long note', 'Second long note\nwith newline'])
Пример #9
0
 def test_setting_and_getting_webpages(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._add_webpage('https://github.com/scheibler/khard')
     wrapper._add_webpage('http://example.com')
     self.assertListEqual(
         wrapper.webpages,
         ['http://example.com', 'https://github.com/scheibler/khard'])
Пример #10
0
 def test_setting_and_getting_categories(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._add_category(["rfc", "address book"])
     wrapper._add_category(["coding", "open source"])
     self.assertListEqual(
         wrapper.categories,
         [["coding", "open source"], ["rfc", "address book"]])
Пример #11
0
 def test_deletes_all_field_occurences(self):
     vcard = _create_test_vcard()
     expected = vcard.serialize()
     vcard.add('FOO').value = 'bar'
     vcard.add('FOO').value = 'baz'
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._delete_vcard_object('FOO')
     self.assertEqual(wrapper.vcard.serialize(), expected)
Пример #12
0
 def test_adding_a_simple_address(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     components = ('box', 'extended', 'street', 'code', 'city', 'region',
                   'country')
     wrapper._add_post_address('home', *components)
     expected = {item: item for item in components}
     self.assertDictEqual(wrapper.post_addresses, {'home': [expected]})
Пример #13
0
 def test_adding_preferred_emails(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper.add_email('home', '*****@*****.**')
     wrapper.add_email('pref,home', '*****@*****.**')
     self.assertDictEqual(wrapper.emails, {
         'home': ['*****@*****.**'],
         'home, pref': ['*****@*****.**']
     })
Пример #14
0
 def test_adding_preferred_phone_number(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._add_phone_number('home', '0123456789')
     wrapper._add_phone_number('pref,home', '0987654321')
     self.assertDictEqual(wrapper.phone_numbers, {
         'home': ['0123456789'],
         'home, pref': ['0987654321']
     })
Пример #15
0
 def test_get_last_name_first_name_with_complex_name(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._add_name(['prefix1', 'prefix2'], ['given1', 'given2'],
                       ['additional1', 'additional2'],
                       ['family1', 'family2'], ['suffix1', 'suffix2'])
     self.assertEqual(
         wrapper.get_last_name_first_name(), 'family1 family2,'
         ' given1 given2 additional1 additional2')
Пример #16
0
 def test_name_can_be_set_with_lists_of_empty_strings(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._add_name(['', ''], ['', ''], ['', ''], ['', ''], ['', ''])
     self.assertEqual(
         vcard.serialize(), 'BEGIN:VCARD\r\n'
         'VERSION:3.0\r\n'
         'FN:Test vCard\r\n'
         'N:;;;;\r\n'
         'END:VCARD\r\n')
Пример #17
0
 def test_setting_and_getting_organisations(self):
     # also test that organisations are returned in sorted order
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     org1 = ["Org", "Sub1", "Sub2"]
     org2 = ["Org2", "Sub3"]
     org3 = ["Foo", "Bar", "Baz"]
     wrapper._add_organisation(org1)
     wrapper._add_organisation(org2)
     wrapper._add_organisation(org3)
     self.assertListEqual(wrapper.organisations, [org3, org1, org2])
Пример #18
0
 def test_deletes_grouped_ablabel_fields(self):
     vcard = _create_test_vcard()
     expected = vcard.serialize()
     foo = vcard.add('FOO')
     foo.value = 'bar'
     foo.group = 'group1'
     label = vcard.add('X-ABLABEL')
     label.value = 'test label'
     label.group = foo.group
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._delete_vcard_object('FOO')
     self.assertEqual(wrapper.vcard.serialize(), expected)
Пример #19
0
 def test_adding_multible_phone_number(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._add_phone_number('work', '0987654321')
     wrapper._add_phone_number('home', '0123456789')
     wrapper._add_phone_number('home', '0112233445')
     self.assertDictEqual(
         wrapper.phone_numbers,
         # The lists are sorted!
         {
             'home': ['0112233445', '0123456789'],
             'work': ['0987654321']
         })
Пример #20
0
 def test_adding_multible_emails(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper.add_email('work', '*****@*****.**')
     wrapper.add_email('home', '*****@*****.**')
     wrapper.add_email('home', '*****@*****.**')
     self.assertDictEqual(
         wrapper.emails,
         # The lists are sorted!
         {
             'home': ['*****@*****.**', '*****@*****.**'],
             'work': ['*****@*****.**']
         })
Пример #21
0
 def test_adding_preferred_address(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     components = ('box', 'extended', 'street', 'code', 'city', 'region',
                   'country')
     wrapper._add_post_address('home', *['home1 ' + c for c in components])
     wrapper._add_post_address('pref,home',
                               *['home2 ' + c for c in components])
     expected_work = {item: 'work ' + item for item in components}
     expected_home2 = {item: 'home2 ' + item for item in components}
     expected_home1 = {item: 'home1 ' + item for item in components}
     self.assertDictEqual(wrapper.post_addresses, {
         'home': [expected_home1],
         'home, pref': [expected_home2]
     })
Пример #22
0
 def test_adding_multible_addresses(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     components = ('box', 'extended', 'street', 'code', 'city', 'region',
                   'country')
     wrapper._add_post_address('work', *['work ' + c for c in components])
     wrapper._add_post_address('home', *['home1 ' + c for c in components])
     wrapper._add_post_address('home', *['home2 ' + c for c in components])
     expected_work = {item: 'work ' + item for item in components}
     expected_home2 = {item: 'home2 ' + item for item in components}
     expected_home1 = {item: 'home1 ' + item for item in components}
     self.assertDictEqual(
         wrapper.post_addresses,
         # The lists are sorted!
         {
             'home': [expected_home1, expected_home2],
             'work': [expected_work]
         })
Пример #23
0
 def test_does_not_fail_on_non_existing_field_name(self):
     vcard = _create_test_vcard(foo='bar')
     expected = vcard.serialize()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._delete_vcard_object('BAR')
     self.assertEqual(wrapper.vcard.serialize(), expected)
Пример #24
0
 def test_get_last_name_first_name_with_simple_name(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._add_name('', 'given', '', 'family', '')
     self.assertEqual(wrapper.get_last_name_first_name(), "family, given")
Пример #25
0
 def test_get_last_name_first_name_with_all_name_fields(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._add_name('prefix', 'given', 'additional', 'family', 'suffix')
     self.assertEqual(wrapper.get_last_name_first_name(),
                      'family, given additional')
Пример #26
0
 def test_adding_a_custom_type_phone_number(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._add_phone_number('custom_type', '0123456789')
     self.assertDictEqual(wrapper.phone_numbers,
                          {'custom_type': ['0123456789']})
Пример #27
0
 def test_adding_a_custom_type_emails(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper.add_email('custom_type', '*****@*****.**')
     self.assertDictEqual(wrapper.emails, {'custom_type': ['*****@*****.**']})
Пример #28
0
 def test_setting_and_getting_nicks(self):
     vcard = _create_test_vcard()
     wrapper = carddav_object.VCardWrapper(vcard)
     wrapper._add_nickname('Foo')
     wrapper._add_nickname('Bar')
     self.assertListEqual(wrapper.nicknames, ['Bar', 'Foo'])
Пример #29
0
 def test_warns_about_missing_version_and_sets_it(self):
     vcard = _create_test_vcard()
     vcard.remove(vcard.version)
     with self.assertLogs(level="WARNING"):
         wrapper = carddav_object.VCardWrapper(vcard)
     self.assertEqual(wrapper.version, "3.0")
Пример #30
0
 def test_warns_about_unsupported_version(self):
     vcard = _create_test_vcard(version="something unsupported")
     with self.assertLogs(level="WARNING"):
         carddav_object.VCardWrapper(vcard)