Merge lp:~canonical-platform-qa/ubuntu-system-tests/test_add_smtp into lp:ubuntu-system-tests
- test_add_smtp
- Merge into trunk
Proposed by Omer Akram
Status: | Work in progress |
---|---|
Proposed branch: | lp:~canonical-platform-qa/ubuntu-system-tests/test_add_smtp |
Merge into: | lp:ubuntu-system-tests |
Prerequisite: | lp:~canonical-platform-qa/ubuntu-system-tests/test_add_imap_account |
Diff against target: | 152 lines (+88/-2) 3 files modified ubuntu_system_tests/config.py (+21/-0) ubuntu_system_tests/helpers/dekko/_cpo.py (+53/-2) ubuntu_system_tests/tests/test_email.py (+14/-0) |
To merge this branch: | bzr merge lp:~canonical-platform-qa/ubuntu-system-tests/test_add_smtp |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Canonical Platform QA Team | Pending | ||
Review via email: |
Commit message
Description of the change
To post a comment you must log in.
Unmerged revisions
- 387. By Omer Akram
-
new test: add smtp account. Is WIP
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'ubuntu_system_tests/config.py' |
2 | --- ubuntu_system_tests/config.py 2016-04-20 10:34:27 +0000 |
3 | +++ ubuntu_system_tests/config.py 2016-04-20 10:34:27 +0000 |
4 | @@ -145,6 +145,27 @@ |
5 | 'encryption_imap', default='SSL', |
6 | help_string='IMAP server encryption to use for email tests'), |
7 | options.Option( |
8 | + 'username_smtp', default='canonical', |
9 | + help_string='SMTP username to use for email tests'), |
10 | + options.Option( |
11 | + 'password_smtp', default=options.MANDATORY, |
12 | + help_string='SMTP password to use for email tests'), |
13 | + options.Option( |
14 | + 'port_number_smtp', default='587', |
15 | + help_string='SMTP server port number to use for email tests'), |
16 | + options.Option( |
17 | + 'hostname_smtp', default='smtp.canonical.com', |
18 | + help_string='SMTP server host name to use for email tests'), |
19 | + options.Option( |
20 | + 'encryption_smtp', default='STARTTLS', |
21 | + help_string='SMTP server encryption to use for email tests'), |
22 | + options.Option( |
23 | + 'name_smtp', default='Canonical QA', |
24 | + help_string='SMTP account name to use for email tests'), |
25 | + options.Option( |
26 | + 'email_smtp', default='platform-qa-test-account@canonical.com', |
27 | + help_string='SMTP account email address to use for email tests'), |
28 | + options.Option( |
29 | 'pictures_scalability_runs', |
30 | help_string='The different loads used for scalability pictures tests ' |
31 | 'separated by comma'), |
32 | |
33 | === modified file 'ubuntu_system_tests/helpers/dekko/_cpo.py' |
34 | --- ubuntu_system_tests/helpers/dekko/_cpo.py 2016-04-20 10:34:27 +0000 |
35 | +++ ubuntu_system_tests/helpers/dekko/_cpo.py 2016-04-20 10:34:27 +0000 |
36 | @@ -138,6 +138,9 @@ |
37 | details_page.visible.wait_for(True) |
38 | return details_page |
39 | |
40 | + def login_smtp(self, username, password): |
41 | + return self.login_imap(username=username, password=password) |
42 | + |
43 | def _enter_credentials_and_proceed(self, email, password): |
44 | self.enter_email(email=email) |
45 | self.enter_password(password=password) |
46 | @@ -187,6 +190,25 @@ |
47 | details_input_page.visible.wait_for(True) |
48 | return details_input_page |
49 | |
50 | + def _get_input_field(self, object_name): |
51 | + entry_area = self.select_single( |
52 | + 'TitledTextField', objectName=object_name) |
53 | + return entry_area.select_single('TextField', visible=True) |
54 | + |
55 | + def enter_name(self, name): |
56 | + name_field = self._get_input_field(object_name='userIdentityNameEntry') |
57 | + name_field.write(name) |
58 | + |
59 | + def enter_email(self, email): |
60 | + email_field = self._get_input_field( |
61 | + object_name='userIdentityEmailEntry') |
62 | + email_field.write(email) |
63 | + |
64 | + def create_identity(self, name, email): |
65 | + self.enter_name(name) |
66 | + self.enter_email(email) |
67 | + return self.go_to_details_page() |
68 | + |
69 | |
70 | class DetailsInput(uitk.UbuntuUIToolkitCustomProxyObjectBase): |
71 | |
72 | @@ -237,13 +259,29 @@ |
73 | hostname_field = self._get_input_field(object_name='imapServerField') |
74 | hostname_field.write(hostname) |
75 | |
76 | + def enter_smtp_host_name(self, hostname): |
77 | + hostname_field = self._get_input_field(object_name='smtpServerField') |
78 | + hostname_field.write(hostname) |
79 | + |
80 | def enter_imap_port_number(self, port_number): |
81 | port_number_field = self._get_input_field(object_name='imapPortField') |
82 | port_number_field.write(port_number) |
83 | |
84 | + def enter_smtp_port_number(self, port_number): |
85 | + port_number_field = self._get_input_field(object_name='smtpPortField') |
86 | + port_number_field.write(port_number) |
87 | + |
88 | + def _get_encryption_selector(self, object_name): |
89 | + return self.select_single(EncryptionSelector, objectName=object_name) |
90 | + |
91 | def select_imap_encryption_type(self, encryption_type): |
92 | - selector = self.select_single( |
93 | - EncryptionSelector, objectName='imapEncryptionSelector') |
94 | + selector = self._get_encryption_selector( |
95 | + object_name='imapEncryptionSelector') |
96 | + selector.select_encryption(encryption_type=encryption_type) |
97 | + |
98 | + def select_smtp_encryption_type(self, encryption_type): |
99 | + selector = self._get_encryption_selector( |
100 | + object_name='smtpEncryptionSelector') |
101 | selector.select_encryption(encryption_type=encryption_type) |
102 | |
103 | @click_object |
104 | @@ -255,6 +293,10 @@ |
105 | self._click_next_button() |
106 | return self.get_root_instance().wait_select_single(DetailsInput) |
107 | |
108 | + def _go_to_identity_page(self): |
109 | + self._click_next_button() |
110 | + return self.get_root_instance().wait_select_single(IdentityInput) |
111 | + |
112 | def enter_imap_server_details(self, host, port, encryption): |
113 | """Enter server details and proceed""" |
114 | self.select_imap_encryption_type(encryption_type=encryption) |
115 | @@ -264,6 +306,15 @@ |
116 | details_page.visible.wait_for(True) |
117 | return details_page |
118 | |
119 | + def enter_smtp_server_details(self, host, port, encryption): |
120 | + """Enter server details and proceed""" |
121 | + self.select_smtp_encryption_type(encryption_type=encryption) |
122 | + self.enter_smtp_host_name(hostname=host) |
123 | + self.enter_smtp_port_number(port_number=port) |
124 | + identity_page = self._go_to_identity_page() |
125 | + identity_page.visible.wait_for(True) |
126 | + return identity_page |
127 | + |
128 | |
129 | class EncryptionSelector(uitk.UbuntuUIToolkitCustomProxyObjectBase): |
130 | |
131 | |
132 | === modified file 'ubuntu_system_tests/tests/test_email.py' |
133 | --- ubuntu_system_tests/tests/test_email.py 2016-04-20 10:34:27 +0000 |
134 | +++ ubuntu_system_tests/tests/test_email.py 2016-04-20 10:34:27 +0000 |
135 | @@ -82,3 +82,17 @@ |
136 | port=self.config.get('port_number_imap'), |
137 | encryption=self.config.get('encryption_imap')) |
138 | account_details_page.finish_wizard() |
139 | + |
140 | + def test_add_smtp_account(self): |
141 | + login_page = self._add_new_email_account(email_provider='smtp') |
142 | + server_details_page = login_page.login_smtp( |
143 | + username=self.config.get('username_smtp'), |
144 | + password=self.config.get('username_smtp')) |
145 | + identity_page = server_details_page.enter_smtp_server_details( |
146 | + host=self.config.get('hostname_smtp'), |
147 | + port=self.config.get('port_number_smtp'), |
148 | + encryption=self.config.get('encryption_smtp')) |
149 | + details_page = identity_page.create_identity( |
150 | + name=self.config.get('name_smtp'), |
151 | + email=self.config.get('email_smtp')) |
152 | + details_page.finish_wizard() |