Example #1
0
 def setUp(self):
     self.format = cctool.BSDCal()
     self.data = [
         cctool.MultiDict([
             ('dtstart', [dt]),
             ('summary', ['foo']),
         ]),
         cctool.MultiDict([
             ('dtstart', [dt]),
             ('summary', ['bar']),
             ('freq', ['yearly']),
         ]),
     ]
     self.text = b'01/01\tfoo\n01/01*\tbar\n'
Example #2
0
 def setUp(self):
     self.format = cctool.ICal()
     self.data = [
         cctool.MultiDict([
             ('summary', ['lorem ipsum']),
             ('dtstart', [dt]),
             ('freq', ['daily']),
         ]),
         cctool.MultiDict([
             ('summary', ['lorem ipsum2', 'lorem ipsum3']),
             ('dtstart', [dt.date()]),
         ]),
     ]
     self.text = (
         'BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//XI//NONSGML CCTOOL//\r\nBEGIN:VEVENT\r\nSUMMARY:lorem ipsum\r\nDTSTART;VALUE=DATE-TIME:%i0101T000000\r\nRRULE:FREQ=DAILY\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nSUMMARY:lorem ipsum2\r\nSUMMARY:lorem ipsum3\r\nDTSTART;VALUE=DATE:%i0101\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n'
         % (year, year)).encode('utf8')
Example #3
0
class _TestFormat(unittest.TestCase):
    data = [cctool.MultiDict({'name': ['foo']})]

    def test_load(self):
        self.assertEqual(list(self.format.loads(self.text)), self.data)

    def test_dump(self):
        self.assertEqual(self.format.dumps(self.data), self.text)
Example #4
0
 def test_merged(self):
     data = [
         cctool.MultiDict({
             'foo': [1],
             'bar': [1, 2]
         }),
         cctool.MultiDict({
             'foo': [1],
             'bar': [2, 3]
         }),
         cctool.MultiDict({
             'foo': [2],
             'bar': [4]
         }),
         cctool.MultiDict({'bar': [5]}),
     ]
     expected = [
         cctool.MultiDict({
             'foo': [1],
             'bar': [1, 2, 3]
         }),
         cctool.MultiDict({
             'foo': [2],
             'bar': [4]
         }),
         cctool.MultiDict({'bar': [5]}),
     ]
     actual = cctool.merged(data, key='foo')
     for item in expected:
         self.assertIn(item, actual)
     for item in actual:
         self.assertIn(item, expected)
Example #5
0
    def test_construct_dict(self):
        d = cctool.MultiDict({
            'foo': [1, 2],
            'bar': [3, 4],
        })

        self.assertEqual(set(d.keys()), set(['foo', 'bar']))
        self.assertEqual(d['foo'], [1, 2])
        self.assertEqual(d['bar'], [3, 4])
Example #6
0
 def setUp(self):
     self.format = cctool.ABook()
     self.data = [
         cctool.MultiDict([
             ('name', ['foo']),
             ('bday', [datetime(1970, 1, 1)]),
         ])
     ]
     self.text = b'[0]\nname = foo\nbday = 1970-01-01\n\n'
Example #7
0
 def setUp(self):
     self.format = cctool.LDIF()
     self.data = [
         cctool.MultiDict([
             ('name', ['foo']),
             ('email', ['*****@*****.**']),
         ])
     ]
     self.text = b'cn: foo\nmail:: Zm9vQGV4YW1wbGUuY29t'
Example #8
0
    def test_construct_list(self):
        d = cctool.MultiDict([
            ('foo', [1, 2]),
            ('bar', [3, 4]),
        ])

        self.assertEqual(list(d.keys()), ['foo', 'bar'])
        self.assertEqual(d['foo'], [1, 2])
        self.assertEqual(d['bar'], [3, 4])
Example #9
0
    def test_simple(self):
        d = cctool.MultiDict([
            ('foo', [1, 2]),
            ('bar', [3, 4]),
        ])

        d2 = cctool.map_keys(d, {'foo': 'baz'})

        self.assertEqual(list(d2.keys()), ['baz'])
        self.assertEqual(d2['baz'], [1, 2])
Example #10
0
    def test_non_exclusive(self):
        d = cctool.MultiDict([
            ('foo', [1, 2]),
            ('bar', [3, 4]),
        ])

        d2 = cctool.map_keys(d, {'foo': 'baz'}, exclusive=False)

        self.assertEqual(list(d2.keys()), ['baz', 'bar'])
        self.assertEqual(d2['baz'], [1, 2])
        self.assertEqual(d2['bar'], [3, 4])
Example #11
0
    def test_person2event_wo_dtstart(self):
        items = list(
            cctool.event2person([
                cctool.MultiDict([
                    ('name', ['some name']),
                    ('tag', ['tag1', 'tag2']),
                ])
            ],
                                reverse=True))

        self.assertEqual(len(items), 0)
Example #12
0
    def test_event2person_wo_dtstart(self):
        items = list(
            cctool.event2person([
                cctool.MultiDict([
                    ('summary', ['some summary']),
                    ('tag', ['tag1', 'tag2']),
                ])
            ]))

        self.assertEqual(list(items[0].keys()), ['name', 'tag'])
        self.assertEqual(items[0]['name'], ['some summary'])
        self.assertEqual(items[0]['tag'], ['tag1', 'tag2'])
Example #13
0
    def test_update(self):
        self.d['foo'] = [1]
        self.d['bar'] = [1, 2]

        md = cctool.MultiDict()
        md['foo'] = [2, 3]
        md['baz'] = [1, 2, 4]

        self.d.update(md)
        self.assertEqual(self.d['foo'], [1, 2, 3])
        self.assertEqual(self.d['bar'], [1, 2])
        self.assertEqual(self.d['baz'], [1, 2, 4])
Example #14
0
    def test_join(self):
        d = cctool.MultiDict([
            ('foo', [1, 2]),
            ('bar', [3, 4]),
            ('baz', [4, 5]),
        ])

        d2 = cctool.map_keys(d, {
            'foo': 'foo',
            'bar': 'foo',
            'baz': 'baz',
        })

        self.assertEqual(list(d2.keys()), ['foo', 'baz'])
        self.assertEqual(d2['foo'], [1, 2, 3, 4])
        self.assertEqual(d2['baz'], [4, 5])
Example #15
0
    def test_non_destructive(self):
        d = cctool.MultiDict([
            ('foo', [1, 2]),
            ('bar', [3, 4]),
            ('baz', [4, 5]),
        ])

        d2 = cctool.map_keys(d, {
            'foo': 'bar',
            'bar': 'baz',
            'baz': 'foo',
        })

        self.assertEqual(list(d.keys()), ['foo', 'bar', 'baz'])
        self.assertEqual(d['foo'], [1, 2])
        self.assertEqual(d['bar'], [3, 4])
        self.assertEqual(d['baz'], [4, 5])
Example #16
0
    def test_person2event(self):
        items = list(
            cctool.event2person([
                cctool.MultiDict([
                    ('name', ['some name']),
                    ('bday', [dt]),
                    ('tag', ['tag1', 'tag2']),
                ])
            ],
                                reverse=True))

        self.assertEqual(list(items[0].keys()),
                         ['summary', 'dtstart', 'tag', 'freq'])
        self.assertEqual(items[0]['summary'], ['some name'])
        self.assertEqual(items[0]['dtstart'], [dt])
        self.assertEqual(items[0]['tag'], ['tag1', 'tag2'])
        self.assertEqual(items[0]['freq'], ['yearly'])
Example #17
0
 def setUp(self):
     self.d = cctool.MultiDict()