sahara-dashboard/sahara_dashboard/test/integration_tests/tests/test_sahara_job_binaries.py

74 lines
3.4 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import collections
from openstack_dashboard.test.integration_tests import helpers
from sahara_dashboard.test.integration_tests.pages.project.data_processing \
import jobbinariespage
# NOTE(tsufiev): beware, ordering matters here because Sahara UI shows fields
# based on value of previous fields and for Selenium to be able to fill the
# field it's crucial that it's visible
JOB_BINARY_INTERNAL = collections.OrderedDict([
# Size of binary name is limited to 50 characters
(jobbinariespage.JobbinariesPage.BINARY_NAME,
helpers.gen_random_resource_name(resource='jobbinary',
timestamp=False)[0:50]),
(jobbinariespage.JobbinariesPage.BINARY_STORAGE_TYPE,
"Internal database"),
(jobbinariespage.JobbinariesPage.INTERNAL_BINARY, "*Create a script"),
(jobbinariespage.JobbinariesPage.BINARY_URL, None),
(jobbinariespage.JobbinariesPage.BINARY_PATH, None),
(jobbinariespage.JobbinariesPage.SCRIPT_NAME,
helpers.gen_random_resource_name(resource='scriptname', timestamp=False)),
(jobbinariespage.JobbinariesPage.SCRIPT_TEXT, "test_script_text"),
(jobbinariespage.JobbinariesPage.USERNAME, None),
(jobbinariespage.JobbinariesPage.PASSWORD, None),
(jobbinariespage.JobbinariesPage.DESCRIPTION, "test description")
])
class TestSaharaJobBinary(helpers.TestCase):
def _sahara_create_delete_job_binary(self, job_binary_template):
job_name = \
job_binary_template[jobbinariespage.JobbinariesPage.BINARY_NAME]
# create job binary
job_binary_pg = self.home_pg.go_to_dataprocessing_jobbinariespage()
self.assertFalse(job_binary_pg.is_job_binary_present(job_name),
"Job binary was present in the binaries table"
" before its creation.")
job_binary_pg.create_job_binary(job_binary_template)
# verify that job is created without problems
self.assertFalse(job_binary_pg.is_error_message_present(),
"Error message occurred during binary job creation.")
self.assertTrue(job_binary_pg.is_job_binary_present(job_name),
"Job binary is not in the binaries job table after"
" its creation.")
# delete binary job
job_binary_pg.delete_job_binary(job_name)
# verify that job was successfully deleted
self.assertFalse(job_binary_pg.is_error_message_present(),
"Error message occurred during binary job deletion.")
self.assertFalse(job_binary_pg.is_job_binary_present(job_name),
"Job binary was not removed from binaries job table.")
def test_sahara_create_delete_job_binary_internaldb(self):
"""Test the creation of a Job Binary in the Internal DB."""
self._sahara_create_delete_job_binary(JOB_BINARY_INTERNAL)