Exemple #1
0
    def test_add_hook_to_db_new_job(self):
        if os.path.isfile('/tmp/test.db'):
            os.remove('/tmp/test.db')

        # Test
        writer = Writer(base_path + '/static/config_valid.yml')
        writer.set_prop('name', self._job_name)
        writer.set_prop('input', self._job_input)
        writer.set_prop('output', self._job_output)
        writer.hooks_writer.add_hook(name='test', method='method', when='never', description='Hook from Test', priority=10)
        writer.hooks_writer.add_hook(name='test2', method='method2', when='always', active=False)
        writer.save()

        self.assertTrue(os.path.isfile('/tmp/test.db'))

        jobInDb = self._get_job()
        self.assertEqual(self._job_name, jobInDb['name'])
        self.assertEqual(self._job_name, writer.get_prop('name'))

        hooksInDb = self._get_hooks(jobInDb['id'], 2)
        self.assertEqual('test', hooksInDb[0]['name'])
        self.assertEqual('Hook from Test', hooksInDb[0]['description'])
        self.assertIs(10, hooksInDb[0]['priority'])
        self.assertEqual('method', hooksInDb[0]['method'])
        self.assertEqual(1, hooksInDb[0]['active'])
        self.assertEqual('never', hooksInDb[0]['when'])

        self.assertEqual('test2', hooksInDb[1]['name'])
        self.assertIs(None, hooksInDb[1]['description'])
        self.assertIs(1, hooksInDb[1]['priority'])
        self.assertEqual('method2', hooksInDb[1]['method'])
        self.assertEqual(0, hooksInDb[1]['active'])
        self.assertEqual('always', hooksInDb[1]['when'])
Exemple #2
0
    def test_new_job(self):
        if os.path.isfile('/tmp/test.db'):
            os.remove('/tmp/test.db')

        # Test
        writer = Writer(base_path + '/static/config_valid.yml')

        # Name + Desc + Prio
        writer.set_prop('name', self._job_name)
        writer.set_prop('description', self._job_desc)
        writer.set_prop('priority', self._job_prio)
        # mode : u=update | c=create | cu=create+update | d=delete
        writer.set_prop('mode', self._job_mode)

        # Inactive
        writer.set_prop('active', True)

        # Input type + Parameters
        writer.set_prop('input', self._job_input)
        writer.set_prop('input_parameters', self._job_input_params)
        # Output type + Parameters
        writer.set_prop('output', self._job_output)
        writer.set_prop('output_parameters', self._job_output_params)

        writer.save()

        self.assertTrue(os.path.isfile('/tmp/test.db'))

        job = self._get_job()
        self.assertEqual(self._job_name, job['name'])
        self.assertEqual(self._job_name, writer.get_prop('name'))

        self.assertEqual(self._job_desc, job['description'])
        self.assertEqual(self._job_desc, writer.get_prop('description'))

        self.assertEqual(self._job_prio, job['priority'])
        self.assertEqual(self._job_mode, job['mode'])
        self.assertTrue(job['active'])
        self.assertEqual(self._job_input, job['input'])
        self.assertEqual(self._job_input_params, json.loads(job['input_parameters']))
        self.assertEqual(self._job_output, job['output'])
        self.assertEqual(self._job_output_params, json.loads(job['output_parameters']))
        self.assertEqual(self._job_prio, job['priority'])
Exemple #3
0
 def test_get_non_existing_prop(self):
     writer = Writer(base_path + '/static/config_valid.yml')
     with self.assertRaisesRegex(KeyError, 'toto is not a valid property'):
         writer.get_prop('toto')
Exemple #4
0
    def test_add_rules_to_db_new_job(self):
        if os.path.isfile('/tmp/test.db'):
            os.remove('/tmp/test.db')

        # Test
        writer = Writer(base_path + '/static/config_valid.yml')
        writer.set_prop('name', self._job_name)
        writer.set_prop('input', self._job_input)
        writer.set_prop('output', self._job_output)
        writer.fields_writer.add_field('input_test', 'output_test')
        writer.fields_writer.add_field('input_test2', 'output_test2')
        writer.fields_writer.add_rule(output_field='output_test', name='lowercase', method='lwrcs', description='Lower the case !', active=False)
        writer.fields_writer.add_rule(output_field='output_test', name='uppercase', method='uprc', params={'a': 'b'}, blocking=True, priority=10)
        job = writer.save()
        writer = Writer(base_path + '/static/config_valid.yml', job.name)

        self.assertTrue(os.path.isfile('/tmp/test.db'))

        jobInDb = self._get_job()
        self.assertEqual(self._job_name, jobInDb['name'])
        self.assertEqual(self._job_name, writer.get_prop('name'))

        fieldsInDb = self._get_fields(jobInDb['id'], 2)
        self.assertEqual('input_test', fieldsInDb[0]['input'])
        self.assertEqual('output_test', fieldsInDb[0]['output'])

        rulesInDb = self._get_rules(fieldsInDb[0]['id'], 2)
        self.assertEqual('lowercase', rulesInDb[0]['name'])
        self.assertEqual('Lower the case !', rulesInDb[0]['description'])
        self.assertEqual(0, rulesInDb[0]['active'])
        self.assertEqual('lwrcs', rulesInDb[0]['method'])
        self.assertEqual({}, json.loads(rulesInDb[0]['params']))
        self.assertIs(0, rulesInDb[0]['blocking'])
        self.assertIs(1, rulesInDb[0]['priority'])

        self.assertEqual('uppercase', rulesInDb[1]['name'])
        self.assertIs(None, rulesInDb[1]['description'])
        self.assertEqual(1, rulesInDb[1]['active'])
        self.assertEqual('uprc', rulesInDb[1]['method'])
        self.assertEqual({'a': 'b'}, json.loads(rulesInDb[1]['params']))
        self.assertIs(1, rulesInDb[1]['blocking'])
        self.assertIs(10, rulesInDb[1]['priority'])

        job = writer.get_job()
        self.assertEqual(self._job_name, job.name)
        fields = writer.fields_writer.get_fields()
        self.assertTrue('output_test' in fields)
        self.assertTrue('output' in fields['output_test'])
        self.assertEqual(fields['output_test']['output'], 'output_test')
        self.assertTrue('rules' in fields['output_test'])
        self.assertTrue('lowercase' in fields['output_test']['rules'])
        self.assertTrue('method' in fields['output_test']['rules']['lowercase'])
        self.assertTrue('params' in fields['output_test']['rules']['lowercase'])
        self.assertEqual(fields['output_test']['rules']['lowercase']['params'], {})

        rules = writer.fields_writer.get_rules('output_test')
        self.assertTrue('lowercase' in rules)
        self.assertTrue('method' in rules['lowercase'])
        self.assertTrue('params' in rules['lowercase'])
        self.assertEqual({}, rules['lowercase']['params'])

        self.assertTrue('uppercase' in rules)
        self.assertTrue('method' in rules['uppercase'])
        self.assertTrue('params' in rules['uppercase'])
        self.assertEqual({'a': 'b'}, rules['uppercase']['params'])