source: mailjam/postman/tests/models.py@ 8:78c437dc392c

Last change on this file since 8:78c437dc392c was 1:421645ee4cd9, checked in by Francisco de Borja Lopez Rio <borja@…>, 13 years ago

Moved the source code from src/ to postman/

Added tests (unittests) splitted into one testing module per app source
file (tests/models.py for testing models.py, tests/storage.py for testing
storage.py and so on). Currently only tests for models have been added.

Added a script to run the tests

File size: 4.8 KB
Line 
1# -*- coding: utf-8 -*-
2
3from unittest import TestCase
4from postman.models import Member, MailingList
5
6
7class TestMember(TestCase):
8 def setUp(self):
9 self.member = Member('test@example.com')
10
11 def test__validate_address(self):
12 self.assertEqual(self.member._validate_address(self.member.address),
13 self.member.address)
14 with self.assertRaises(ValueError):
15 self.member._validate_address('notavalidemail')
16
17
18class TestMailingList(TestCase):
19 def setUp(self):
20 config = {'private': False, 'archive': '/tmp/postman-tests/archive',
21 'storage': '/tmp/postman-tests/storage'}
22 self.mailing_list = MailingList('test_list', 'test_list@example.com',
23 members={}, config=config)
24 self.member = Member('test@example.com')
25
26 def test__validate_member_object(self):
27 self.assertEqual(self.mailing_list._validate_member_object(self.member),
28 self.member)
29 with self.assertRaises(TypeError):
30 self.mailing_list._validate_member_object(None)
31 self.mailing_list._validate_member_object('Not a member object')
32 self.mailing_list._validate_member_object(self.mailing_list)
33
34 def test__validate_member(self):
35 # At first the member object is not a member of the list
36 self.assertFalse(self.mailing_list._validate_member(self.member))
37 self.mailing_list.add_member(self.member)
38 self.assertTrue(self.mailing_list._validate_member(self.member))
39 with self.assertRaises(TypeError):
40 self.mailing_list._validate_member(None)
41 self.mailing_list._validate_member('Not a member object')
42 self.mailing_list._validate_member(self.mailing_list)
43
44 def test__validate_member_by_address(self):
45 self.assertFalse(self.mailing_list._validate_member_by_address(self.member.address))
46 self.mailing_list.add_member(self.member)
47 self.assertTrue(self.mailing_list._validate_member_by_address(self.member.address))
48 with self.assertRaises(ValueError):
49 self.mailing_list._validate_member_by_address(self.member)
50 self.mailing_list._validate_member_by_address(None)
51 self.mailing_list._validate_member_by_address('Not a member object')
52 self.mailing_list._validate_member_by_address(self.mailing_list)
53
54 def test_members_addresses(self):
55 self.assertEqual(self.mailing_list.members_addresses(), [])
56 self.mailing_list.add_member(self.member)
57 self.assertTrue(self.member.address in \
58 self.mailing_list.members_addresses())
59
60 def test_add_member(self):
61 self.assertTrue(self.mailing_list.add_member(self.member))
62 self.assertTrue(self.member.address in \
63 self.mailing_list.members_addresses())
64 # check what happens if the member is already there:
65 self.assertFalse(self.mailing_list.add_member(self.member))
66 # check what happens if we try to add something that is not
67 # a valid Member instance
68 with self.assertRaises(TypeError):
69 self.mailing_list.add_member(None)
70 self.mailing_list.add_member('Not a member object')
71 self.mailing_list.add_member(self.mailing_list)
72
73 def test_add_member_by_address(self):
74 self.assertTrue(self.mailing_list.add_member_by_address(self.member.address))
75 self.assertTrue(self.member.address in \
76 self.mailing_list.members_addresses())
77 # check what happens if the member is already there:
78 self.assertFalse(self.mailing_list.add_member_by_address(self.member.address))
79 # check what happens if we try to add something that is not
80 # a valid Member instance
81 with self.assertRaises(ValueError):
82 self.mailing_list.add_member_by_address(self.member)
83 self.mailing_list.add_member_by_address(None)
84 self.mailing_list.add_member_by_address('Not a member object')
85 self.mailing_list.add_member_by_address(self.mailing_list)
86
87 def test_delete_member(self):
88 self.assertFalse(self.mailing_list.delete_member(self.member))
89 self.mailing_list.add_member(self.member)
90 self.assertTrue(self.member.address in \
91 self.mailing_list.members_addresses())
92 self.assertTrue(self.mailing_list.delete_member(self.member))
93 self.assertFalse(self.member.address in \
94 self.mailing_list.members_addresses())
95 with self.assertRaises(TypeError):
96 self.mailing_list.delete_member(None)
97 self.mailing_list.delete_member('Not a member object')
98 self.mailing_list.delete_member(self.mailing_list)
Note: See TracBrowser for help on using the repository browser.