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.
25 from lcm.pub.database.models import JobStatusModel, JobModel
26 from lcm.pub.utils.jobutil import JobUtil
37 class UtilsTest(unittest.TestCase):
45 MY_TYPE = enumutil.enum(SAMLL=0, LARGE=1)
46 self.assertEqual(0, MY_TYPE.SAMLL)
47 self.assertEqual(1, MY_TYPE.LARGE)
49 def test_create_and_delete_dir(self):
51 fileutil.make_dirs(dirs)
52 fileutil.make_dirs(dirs)
53 fileutil.delete_dirs(dirs)
55 @mock.patch.object(urllib2, 'urlopen')
56 def test_download_file_from_http(self, mock_urlopen):
57 mock_urlopen.return_value = MockReq()
58 fileutil.delete_dirs("abc")
59 is_ok, f_name = fileutil.download_file_from_http("1", "abc", "1.txt")
60 self.assertTrue(is_ok)
61 if platform.system() == 'Windows':
62 self.assertTrue(f_name.endswith("abc\\1.txt"))
64 self.assertTrue(f_name.endswith("abc/1.txt"))
65 fileutil.delete_dirs("abc")
67 def test_query_job_status(self):
69 JobStatusModel.objects.filter().delete()
88 jobs = JobUtil.query_job_status(job_id)
89 self.assertEqual(1, len(jobs))
90 self.assertEqual(3, jobs[0].indexid)
91 jobs = JobUtil.query_job_status(job_id, 1)
92 self.assertEqual(2, len(jobs))
93 self.assertEqual(3, jobs[0].indexid)
94 self.assertEqual(2, jobs[1].indexid)
95 JobStatusModel.objects.filter().delete()
97 def test_is_job_exists(self):
99 JobModel.objects.filter().delete()
107 self.assertTrue(JobUtil.is_job_exists(job_id))
108 JobModel.objects.filter().delete()
110 def test_create_job(self):
112 JobModel.objects.filter().delete()
120 self.assertEqual(1, len(JobModel.objects.filter(jobid=job_id)))
121 JobModel.objects.filter().delete()
123 def test_clear_job(self):
125 JobModel.objects.filter().delete()
133 JobUtil.clear_job(job_id)
134 self.assertEqual(0, len(JobModel.objects.filter(jobid=job_id)))
136 def test_add_job_status_when_job_is_not_created(self):
137 JobModel.objects.filter().delete()
140 JobUtil.add_job_status,
147 def test_add_job_status_normal(self):
149 JobModel.objects.filter().delete()
150 JobStatusModel.objects.filter().delete()
158 JobUtil.add_job_status(
164 self.assertEqual(1, len(JobStatusModel.objects.filter(jobid=job_id)))
165 JobStatusModel.objects.filter().delete()
166 JobModel.objects.filter().delete()
168 def test_clear_job_status(self):
170 JobStatusModel.objects.filter().delete()
177 JobUtil.clear_job_status(job_id)
178 self.assertEqual(0, len(JobStatusModel.objects.filter(jobid=job_id)))
180 def test_get_unfinished_jobs(self):
181 JobModel.objects.filter().delete()
203 progresses = JobUtil.get_unfinished_jobs(
204 url_prefix="/vnfinst",
208 expect_progresses = ['/vnfinst/11', '/vnfinst/22', '/vnfinst/33']
209 self.assertEqual(expect_progresses, progresses)
210 JobModel.objects.filter().delete()
212 def test_fun_name(self):
213 self.assertEqual("test_fun_name", syscomm.fun_name())
215 def test_now_time(self):
216 self.assertIn(":", timeutil.now_time())
217 self.assertIn("-", timeutil.now_time())
219 def test_ignore_case_get(self):
224 self.assertEqual("def", values.ignore_case_get(data, 'ABC'))
225 self.assertEqual("def", values.ignore_case_get(data, 'abc'))
226 self.assertEqual("klm", values.ignore_case_get(data, 'hig'))
227 self.assertEqual("bbb", values.ignore_case_get(data, 'aaa', 'bbb'))