def setting_object(key, *args, **kwargs): """ Return a setting object speciifed by the given key (Or return None if the setting does not exist) if a user-setting was requested return that """ if 'user' in kwargs: return InvenTreeUserSetting.get_setting_object(key, user=kwargs['user']) return InvenTreeSetting.get_setting_object(key)
def setting_object(key, *args, **kwargs): """ Return a setting object speciifed by the given key (Or return None if the setting does not exist) if a user-setting was requested return that """ if 'plugin' in kwargs: # Note, 'plugin' is an instance of an InvenTreePlugin class plugin = kwargs['plugin'] return PluginSetting.get_setting_object(key, plugin=plugin) if 'method' in kwargs: return NotificationUserSetting.get_setting_object(key, user=kwargs['user'], method=kwargs['method']) if 'user' in kwargs: return InvenTreeUserSetting.get_setting_object(key, user=kwargs['user']) return InvenTreeSetting.get_setting_object(key)
def test_print(self): """ Printing tests for the BuildReport """ report = self.model.objects.first() url = reverse(self.print_url, kwargs={'pk': report.pk}) # Try to print without providing a valid BuildOrder response = self.get(url, expected_code=400) # Try to print with an invalid BuildOrder response = self.get(url, {'build': 9999}, expected_code=400) # Now print with a valid BuildOrder build = Build.objects.first() response = self.get(url, {'build': build.pk}) self.assertEqual(type(response), StreamingHttpResponse) headers = response.headers self.assertEqual(headers['Content-Type'], 'application/pdf') self.assertEqual(headers['Content-Disposition'], 'attachment; filename="report.pdf"') # Now, set the download type to be "inline" inline = InvenTreeUserSetting.get_setting_object( 'REPORT_INLINE', self.user) inline.value = True inline.save() response = self.get(url, {'build': 1}) headers = response.headers self.assertEqual(headers['Content-Type'], 'application/pdf') self.assertEqual(headers['Content-Disposition'], 'inline; filename="report.pdf"')