def test_load_module(self): # Test loading by just giving it the name in the constructor tx_module = TxModule.get(name='module1') self.assertEqual(tx_module.resource_types, self.items['module1']['resource_types']) # Test loading by just giving it only the name in the data array in the constructor tx_module = TxModule.get(name='module2') self.assertEqual(tx_module.input_format, self.items['module2']['input_format'])
def test_register_module(self): data = { 'name': 'module4', 'type': 'conversion', 'resource_types': ['obs'], 'input_format': 'md', 'output_format': 'html', 'options': {'pageSize': 'A4'}, 'public_links': [], 'private_links': [] } self.tx_manager.register_module(data) tx_module = TxModule.get(name=data['name']) self.assertIsNotNone(tx_module) self.assertEqual(tx_module.options['pageSize'], 'A4') self.assertEqual(tx_module.created_at.year, datetime.utcnow().year) self.assertEqual(tx_module.updated_at.year, datetime.utcnow().year) self.assertEqual(tx_module.public_links, ['{0}/tx/convert/{1}'.format(App.api_url, data['name'])]) test_missing_keys = ['name', 'type', 'input_format', 'resource_types'] for key in test_missing_keys: # should raise an exception if data is missing a required field missing = data.copy() del missing[key] self.assertRaises(Exception, self.tx_manager.register_module, missing)
def register_module(data): tx_module = TxModule(**data) if not tx_module.name: raise Exception('"name" not given.') if not tx_module.type: raise Exception('"type" not given.') if not tx_module.input_format: raise Exception('"input_format" not given.') if not tx_module.resource_types: raise Exception('"resource_types" not given.') tx_module.public_links.append("{0}/tx/convert/{1}".format(App.api_url, tx_module.name)) old_module = TxModule.get(name=tx_module.name) if old_module: old_module.delete() tx_module.insert() return tx_module
def test_delete_module(self): tx_module = TxModule.get(name=self.items['module1']['name']) self.assertIsNotNone(tx_module) tx_module.delete() tx_module = TxModule.get(name=self.items['module1']['name']) self.assertIsNone(tx_module)
def test_update_module(self): tx_module = TxModule.get(name=self.items['module3']['name']) tx_module.output_format = 'usfm' tx_module.update() tx_module = TxModule.get(name=self.items['module3']['name']) self.assertEqual(tx_module.output_format, 'usfm')