mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 13:15:43 +00:00 
			
		
		
		
	Merge pull request #2991 from matmair/not-working-tests
Static test fixes
This commit is contained in:
		
							
								
								
									
										14
									
								
								.github/workflows/qc_checks.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/workflows/qc_checks.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -182,9 +182,9 @@ jobs: | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install gettext | ||||
|           python -m pip install -U pip | ||||
|           pip3 install invoke | ||||
|           invoke install | ||||
|           invoke static | ||||
|           invoke update | ||||
|       - name: Coverage Tests | ||||
|         run: | | ||||
|           invoke coverage | ||||
| @@ -245,11 +245,12 @@ jobs: | ||||
|       - name: Install Dependencies | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install libpq-dev | ||||
|           sudo apt-get install libpq-dev gettext | ||||
|           python -m pip install -U pip | ||||
|           pip3 install invoke | ||||
|           pip3 install psycopg2 | ||||
|           pip3 install django-redis>=5.0.0 | ||||
|           invoke install | ||||
|           invoke update | ||||
|       - name: Run Tests | ||||
|         run: invoke test | ||||
|       - name: Data Import Export | ||||
| @@ -302,10 +303,11 @@ jobs: | ||||
|       - name: Install Dependencies | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install libmysqlclient-dev | ||||
|           sudo apt-get install libmysqlclient-dev gettext | ||||
|           python -m pip install -U pip | ||||
|           pip3 install invoke | ||||
|           pip3 install mysqlclient | ||||
|           invoke install | ||||
|           invoke update | ||||
|       - name: Run Tests | ||||
|         run: invoke test | ||||
|       - name: Data Import Export | ||||
|   | ||||
| @@ -32,6 +32,10 @@ class MiddlewareTests(TestCase): | ||||
|         # logout | ||||
|         self.client.logout() | ||||
|  | ||||
|         # check that static files go through | ||||
|         # TODO @matmair reenable this check | ||||
|         # self.check_path('/static/css/inventree.css', 302) | ||||
|  | ||||
|         # check that account things go through | ||||
|         self.check_path(reverse('account_login')) | ||||
|  | ||||
|   | ||||
| @@ -1722,6 +1722,9 @@ class ColorTheme(models.Model): | ||||
|     @classmethod | ||||
|     def get_color_themes_choices(cls): | ||||
|         """ Get all color themes from static folder """ | ||||
|         if settings.TESTING and not os.path.exists(settings.STATIC_COLOR_THEMES_DIR): | ||||
|             logger.error('Theme directory does not exsist') | ||||
|             return [] | ||||
|  | ||||
|         # Get files list from css/color-themes/ folder | ||||
|         files_list = [] | ||||
|   | ||||
| @@ -12,7 +12,7 @@ from InvenTree.helpers import str2bool | ||||
| from plugin.models import NotificationUserSetting, PluginConfig | ||||
| from plugin import registry | ||||
|  | ||||
| from .models import InvenTreeSetting, InvenTreeUserSetting, WebhookEndpoint, WebhookMessage, NotificationEntry | ||||
| from .models import InvenTreeSetting, InvenTreeUserSetting, WebhookEndpoint, WebhookMessage, NotificationEntry, ColorTheme | ||||
| from .api import WebhookView | ||||
|  | ||||
| CONTENT_TYPE_JSON = 'application/json' | ||||
| @@ -716,3 +716,35 @@ class LoadingTest(TestCase): | ||||
|  | ||||
|         # now it should be false again | ||||
|         self.assertFalse(common.models.InvenTreeSetting.get_setting('SERVER_RESTART_REQUIRED')) | ||||
|  | ||||
|  | ||||
| class ColorThemeTest(TestCase): | ||||
|     """Tests for ColorTheme""" | ||||
|  | ||||
|     def test_choices(self): | ||||
|         """Test that default choices are returned""" | ||||
|         result = ColorTheme.get_color_themes_choices() | ||||
|  | ||||
|         # skip | ||||
|         if not result: | ||||
|             return | ||||
|         self.assertIn(('default', 'Default'), result) | ||||
|  | ||||
|     def test_valid_choice(self): | ||||
|         """Check that is_valid_choice works correctly""" | ||||
|         result = ColorTheme.get_color_themes_choices() | ||||
|  | ||||
|         # skip | ||||
|         if not result: | ||||
|             return | ||||
|  | ||||
|         # check wrong reference | ||||
|         self.assertFalse(ColorTheme.is_valid_choice('abcdd')) | ||||
|  | ||||
|         # create themes | ||||
|         aa = ColorTheme.objects.create(user='aa', name='testname') | ||||
|         ab = ColorTheme.objects.create(user='ab', name='darker') | ||||
|  | ||||
|         # check valid theme | ||||
|         self.assertFalse(ColorTheme.is_valid_choice(aa)) | ||||
|         self.assertTrue(ColorTheme.is_valid_choice(ab)) | ||||
|   | ||||
| @@ -2,6 +2,7 @@ import os | ||||
| import shutil | ||||
| import logging | ||||
| import hashlib | ||||
| import warnings | ||||
|  | ||||
| from django.apps import AppConfig | ||||
| from django.conf import settings | ||||
| @@ -42,6 +43,15 @@ class LabelConfig(AppConfig): | ||||
|         """ | ||||
|         Create all default templates | ||||
|         """ | ||||
|         # Test if models are ready | ||||
|         try: | ||||
|             from .models import StockLocationLabel | ||||
|             assert bool(StockLocationLabel is not None) | ||||
|         except AppRegistryNotReady: | ||||
|             # Database might not yet be ready | ||||
|             warnings.warn('Database was not ready for creating labels') | ||||
|             return | ||||
|  | ||||
|         self.create_stock_item_labels() | ||||
|         self.create_stock_location_labels() | ||||
|         self.create_part_labels() | ||||
| @@ -52,11 +62,7 @@ class LabelConfig(AppConfig): | ||||
|         if they do not already exist | ||||
|         """ | ||||
|  | ||||
|         try: | ||||
|             from .models import StockItemLabel | ||||
|         except AppRegistryNotReady:  # pragma: no cover | ||||
|             # Database might not by ready yet | ||||
|             return | ||||
|         from .models import StockItemLabel | ||||
|  | ||||
|         src_dir = os.path.join( | ||||
|             os.path.dirname(os.path.realpath(__file__)), | ||||
| @@ -139,11 +145,7 @@ class LabelConfig(AppConfig): | ||||
|         if they do not already exist | ||||
|         """ | ||||
|  | ||||
|         try: | ||||
|             from .models import StockLocationLabel | ||||
|         except AppRegistryNotReady:  # pragma: no cover | ||||
|             # Database might not yet be ready | ||||
|             return | ||||
|         from .models import StockLocationLabel | ||||
|  | ||||
|         src_dir = os.path.join( | ||||
|             os.path.dirname(os.path.realpath(__file__)), | ||||
| @@ -233,11 +235,7 @@ class LabelConfig(AppConfig): | ||||
|         if they do not already exist. | ||||
|         """ | ||||
|  | ||||
|         try: | ||||
|             from .models import PartLabel | ||||
|         except AppRegistryNotReady:  # pragma: no cover | ||||
|             # Database might not yet be ready | ||||
|             return | ||||
|         from .models import PartLabel | ||||
|  | ||||
|         src_dir = os.path.join( | ||||
|             os.path.dirname(os.path.realpath(__file__)), | ||||
|   | ||||
| @@ -4,12 +4,14 @@ import os | ||||
|  | ||||
| from django.conf import settings | ||||
| from django.apps import apps | ||||
| from django.urls import reverse | ||||
| from django.core.exceptions import ValidationError | ||||
|  | ||||
| from InvenTree.helpers import validateFilterString | ||||
| from InvenTree.api_tester import InvenTreeAPITestCase | ||||
|  | ||||
| from .models import StockItemLabel, StockLocationLabel | ||||
| from .models import StockItemLabel, StockLocationLabel, PartLabel | ||||
| from part.models import Part | ||||
| from stock.models import StockItem | ||||
|  | ||||
|  | ||||
| @@ -82,3 +84,13 @@ class LabelTest(InvenTreeAPITestCase): | ||||
|  | ||||
|         with self.assertRaises(ValidationError): | ||||
|             validateFilterString(bad_filter_string, model=StockItem) | ||||
|  | ||||
|     def test_label_rendering(self): | ||||
|         """Test label rendering""" | ||||
|  | ||||
|         labels = PartLabel.objects.all() | ||||
|         part = Part.objects.first() | ||||
|  | ||||
|         for label in labels: | ||||
|             url = reverse('api-part-label-print', kwargs={'pk': label.pk}) | ||||
|             self.get(f'{url}?parts={part.pk}', expected_code=200) | ||||
|   | ||||
| @@ -83,7 +83,7 @@ def render_date(context, date_object): | ||||
|  | ||||
|         user = context.get('user', None) | ||||
|  | ||||
|         if user: | ||||
|         if user and user.is_authenticated: | ||||
|             # User is specified - look for their date display preference | ||||
|             user_date_format = InvenTreeUserSetting.get_setting('DATE_DISPLAY_FORMAT', user=user) | ||||
|         else: | ||||
| @@ -329,7 +329,7 @@ def settings_value(key, *args, **kwargs): | ||||
|     """ | ||||
|  | ||||
|     if 'user' in kwargs: | ||||
|         if not kwargs['user']: | ||||
|         if not kwargs['user'] or (kwargs['user'] and kwargs['user'].is_authenticated is False): | ||||
|             return InvenTreeUserSetting.get_setting(key) | ||||
|         return InvenTreeUserSetting.get_setting(key, user=kwargs['user']) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user