Merge lp:~canonical-platform-qa/ubuntu-system-tests/test_add_smtp into lp:ubuntu-system-tests

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
Reviewer Review Type Date Requested Status
Canonical Platform QA Team Pending
Review via email: mp+292362@code.launchpad.net
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()

Subscribers

People subscribed via source and target branches

to all changes: