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.
18 from . import fileutil
21 from . import timeutil
24 from genericparser.pub.database.models import JobStatusModel, JobModel
25 from genericparser.pub.utils.jobutil import JobUtil
36 class UtilsTest(unittest.TestCase):
43 def test_create_and_delete_dir(self):
45 fileutil.make_dirs(dirs)
46 fileutil.make_dirs(dirs)
47 fileutil.delete_dirs(dirs)
49 @mock.patch.object(urllib.request, 'urlopen')
50 def test_download_file_from_http(self, mock_urlopen):
51 mock_urlopen.return_value = MockReq()
52 fileutil.delete_dirs("abc")
53 is_ok, f_name = fileutil.download_file_from_http("1", "abc", "1.txt")
54 self.assertTrue(is_ok)
55 if 'Windows' in platform.system():
56 self.assertTrue(f_name.endswith("abc\\1.txt"))
58 self.assertTrue(f_name.endswith("abc/1.txt"))
59 fileutil.delete_dirs("abc")
61 def test_query_job_status(self):
63 JobStatusModel.objects.filter().delete()
82 jobs = JobUtil.query_job_status(job_id)
83 self.assertEqual(1, len(jobs))
84 self.assertEqual(3, jobs[0].indexid)
85 jobs = JobUtil.query_job_status(job_id, 1)
86 self.assertEqual(2, len(jobs))
87 self.assertEqual(3, jobs[0].indexid)
88 self.assertEqual(2, jobs[1].indexid)
89 JobStatusModel.objects.filter().delete()
91 def test_is_job_exists(self):
93 JobModel.objects.filter().delete()
101 self.assertTrue(JobUtil.is_job_exists(job_id))
102 JobModel.objects.filter().delete()
104 def test_create_job(self):
106 JobModel.objects.filter().delete()
114 self.assertEqual(1, len(JobModel.objects.filter(jobid=job_id)))
115 JobModel.objects.filter().delete()
117 def test_clear_job(self):
119 JobModel.objects.filter().delete()
127 JobUtil.clear_job(job_id)
128 self.assertEqual(0, len(JobModel.objects.filter(jobid=job_id)))
130 def test_add_job_status_when_job_is_not_created(self):
131 JobModel.objects.filter().delete()
134 JobUtil.add_job_status,
141 def test_add_job_status_normal(self):
143 JobModel.objects.filter().delete()
144 JobStatusModel.objects.filter().delete()
152 JobUtil.add_job_status(
158 self.assertEqual(1, len(JobStatusModel.objects.filter(jobid=job_id)))
159 JobStatusModel.objects.filter().delete()
160 JobModel.objects.filter().delete()
162 def test_clear_job_status(self):
164 JobStatusModel.objects.filter().delete()
171 JobUtil.clear_job_status(job_id)
172 self.assertEqual(0, len(JobStatusModel.objects.filter(jobid=job_id)))
174 def test_get_unfinished_jobs(self):
175 JobModel.objects.filter().delete()
197 progresses = JobUtil.get_unfinished_jobs(
198 url_prefix="/vnfinst",
202 expect_progresses = ['/vnfinst/11', '/vnfinst/22', '/vnfinst/33']
203 self.assertEqual(expect_progresses, progresses)
204 JobModel.objects.filter().delete()
206 def test_fun_name(self):
207 self.assertEqual("test_fun_name", syscomm.fun_name())
209 def test_now_time(self):
210 self.assertIn(":", timeutil.now_time())
211 self.assertIn("-", timeutil.now_time())
213 def test_ignore_case_get(self):
218 self.assertEqual("def", values.ignore_case_get(data, 'ABC'))
219 self.assertEqual("def", values.ignore_case_get(data, 'abc'))
220 self.assertEqual("klm", values.ignore_case_get(data, 'hig'))
221 self.assertEqual("bbb", values.ignore_case_get(data, 'aaa', 'bbb'))