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'
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')
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)
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)
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])
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'
def setUp(self): self.format = cctool.LDIF() self.data = [ cctool.MultiDict([ ('name', ['foo']), ('email', ['*****@*****.**']), ]) ] self.text = b'cn: foo\nmail:: Zm9vQGV4YW1wbGUuY29t'
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])
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])
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])
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)
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'])
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])
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])
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])
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'])
def setUp(self): self.d = cctool.MultiDict()