1 # Copyright 2018 ZTE Corporation.
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
19 from . import fileutil
22 from . import timeutil
25 from catalog.pub.database.models import JobStatusModel, JobModel
26 from catalog.pub.utils.jobutil import JobUtil
37 class UtilsTest(unittest.TestCase):
44 def test_create_and_delete_dir(self):
46 fileutil.make_dirs(dirs)
47 fileutil.make_dirs(dirs)
48 fileutil.delete_dirs(dirs)
50 @mock.patch.object(urllib.request, 'urlopen')
51 def test_download_file_from_http(self, mock_urlopen):
52 mock_urlopen.return_value = MockReq()
53 fileutil.delete_dirs("abc")
54 is_ok, f_name = fileutil.download_file_from_http("1", "abc", "1.txt")
55 self.assertTrue(is_ok)
56 if 'Windows' in platform.system():
57 self.assertTrue(f_name.endswith("abc\\1.txt"))
59 self.assertTrue(f_name.endswith("abc/1.txt"))
60 fileutil.delete_dirs("abc")
62 def test_query_job_status(self):
64 JobStatusModel.objects.filter().delete()
83 jobs = JobUtil.query_job_status(job_id)
84 self.assertEqual(1, len(jobs))
85 self.assertEqual(3, jobs[0].indexid)
86 jobs = JobUtil.query_job_status(job_id, 1)
87 self.assertEqual(2, len(jobs))
88 self.assertEqual(3, jobs[0].indexid)
89 self.assertEqual(2, jobs[1].indexid)
90 JobStatusModel.objects.filter().delete()
92 def test_is_job_exists(self):
94 JobModel.objects.filter().delete()
102 self.assertTrue(JobUtil.is_job_exists(job_id))
103 JobModel.objects.filter().delete()
105 def test_create_job(self):
107 JobModel.objects.filter().delete()
115 self.assertEqual(1, len(JobModel.objects.filter(jobid=job_id)))
116 JobModel.objects.filter().delete()
118 def test_clear_job(self):
120 JobModel.objects.filter().delete()
128 JobUtil.clear_job(job_id)
129 self.assertEqual(0, len(JobModel.objects.filter(jobid=job_id)))
131 def test_add_job_status_when_job_is_not_created(self):
132 JobModel.objects.filter().delete()
135 JobUtil.add_job_status,
142 def test_add_job_status_normal(self):
144 JobModel.objects.filter().delete()
145 JobStatusModel.objects.filter().delete()
153 JobUtil.add_job_status(
159 self.assertEqual(1, len(JobStatusModel.objects.filter(jobid=job_id)))
160 JobStatusModel.objects.filter().delete()
161 JobModel.objects.filter().delete()
163 def test_clear_job_status(self):
165 JobStatusModel.objects.filter().delete()
172 JobUtil.clear_job_status(job_id)
173 self.assertEqual(0, len(JobStatusModel.objects.filter(jobid=job_id)))
175 def test_get_unfinished_jobs(self):
176 JobModel.objects.filter().delete()
198 progresses = JobUtil.get_unfinished_jobs(
199 url_prefix="/vnfinst",
203 expect_progresses = ['/vnfinst/11', '/vnfinst/22', '/vnfinst/33']
204 self.assertEqual(expect_progresses, progresses)
205 JobModel.objects.filter().delete()
207 def test_fun_name(self):
208 self.assertEqual("test_fun_name", syscomm.fun_name())
210 def test_now_time(self):
211 self.assertIn(":", timeutil.now_time())
212 self.assertIn("-", timeutil.now_time())
214 def test_ignore_case_get(self):
219 self.assertEqual("def", values.ignore_case_get(data, 'ABC'))
220 self.assertEqual("def", values.ignore_case_get(data, 'abc'))
221 self.assertEqual("klm", values.ignore_case_get(data, 'hig'))
222 self.assertEqual("bbb", values.ignore_case_get(data, 'aaa', 'bbb'))