def test_create_does_not_create_meta_after_first_time_plugin_name_is_used( self): """ Test whether overriden create does not create a new plugin meta when creating a plugin version with a name that already exists in the system. """ user = User.objects.get(username=self.username) validated_data = self.plg_repr.copy() validated_data['parameters'][0]['type'] = 'string' validated_data['version'] = '0.2.2' validated_data['meta'] = { 'name': self.plugin_name, 'public_repo': 'https://github.com/FNNDSC' } validated_data['dock_image'] = 'fnndsc/pl-testapp' f = ContentFile(json.dumps(self.plg_repr).encode()) f.name = 'testapp.json' validated_data['descriptor_file'] = f validated_data['owner'] = [user] plg_serializer = PluginSerializer() n_plg_meta = PluginMeta.objects.count() plg_meta = PluginMeta.objects.get(name=self.plugin_name) plugin = plg_serializer.create(validated_data) self.assertEqual(n_plg_meta, PluginMeta.objects.count()) self.assertEqual(plugin.meta, plg_meta)
def test_create_also_creates_meta_first_time_plugin_name_is_used(self): """ Test whether overriden create also creates a new plugin meta when creating a plugin with a new name that doesn't already exist in the system. """ user = User.objects.get(username=self.username) validated_data = self.plg_repr.copy() validated_data['parameters'][0]['type'] = 'string' validated_data['meta'] = {'name': 'testapp', 'public_repo': 'https://github.com/FNNDSC'} validated_data['dock_image'] = 'fnndsc/pl-testapp' f = ContentFile(json.dumps(self.plg_repr).encode()) f.name = 'testapp.json' validated_data['descriptor_file'] = f validated_data['user'] = user plg_serializer = PluginSerializer() with self.assertRaises(PluginMeta.DoesNotExist): PluginMeta.objects.get(name='testapp') plg_serializer.create(validated_data) self.assertEqual(PluginMeta.objects.get(name='testapp').name, 'testapp')