33on ModelAdmin that utilize caches
44and S3 as a storage backend
55"""
6+
67import os
78
89import pytest
910import pkg_resources
1011import localstack_client .session
12+ import django
1113
1214from importlib import reload
1315from selenium .webdriver .remote .file_detector import LocalFileDetector
2325from admin_confirm .constants import CONFIRM_CHANGE
2426
2527
28+ DJANGO_VERSION = django .__version__
29+
30+
2631class ConfirmWithS3StorageTests (AdminConfirmIntegrationTestCase ):
2732 def setUp (self ):
2833 self .selenium .file_detector = LocalFileDetector ()
@@ -44,10 +49,19 @@ def tearDown(self):
4449 def test_s3_is_being_used (self ):
4550 self .assertTrue (settings .USE_S3 )
4651 self .assertIsNotNone (settings .AWS_ACCESS_KEY_ID )
47- self .assertEqual (
48- settings .DEFAULT_FILE_STORAGE ,
49- "tests.storage_backends.PublicMediaStorage" ,
50- )
52+
53+ if DJANGO_VERSION >= "4.2" :
54+ # Available since Django 4.2
55+ self .assertEqual (
56+ settings .STORAGES ["default" ]["BACKEND" ],
57+ "tests.storage_backends.PublicMediaStorage" ,
58+ )
59+ else :
60+ # Deprecated in Django 5.1
61+ self .assertEqual (
62+ settings .DEFAULT_FILE_STORAGE ,
63+ "tests.storage_backends.PublicMediaStorage" ,
64+ )
5165
5266 def test_should_save_file_additions (self ):
5367 selenium_version = pkg_resources .get_distribution ("selenium" ).parsed_version
@@ -56,23 +70,17 @@ def test_should_save_file_additions(self):
5670 "Known issue `https://github.com/SeleniumHQ/selenium/issues/8762` with this selenium version."
5771 )
5872
59- item = Item .objects .create (
60- name = "item" , price = 1 , currency = Item .VALID_CURRENCIES [0 ][0 ]
61- )
73+ item = Item .objects .create (name = "item" , price = 1 , currency = Item .VALID_CURRENCIES [0 ][0 ])
6274
63- self .selenium .get (
64- self .live_server_url + f"/admin/market/item/{ item .id } /change/"
65- )
75+ self .selenium .get (self .live_server_url + f"/admin/market/item/{ item .id } /change/" )
6676 self .assertIn (CONFIRM_CHANGE , self .selenium .page_source )
6777
6878 # Make a change to trigger confirmation page
6979 price = self .selenium .find_element (By .NAME , "price" )
7080 price .send_keys (2 )
7181
7282 # Upload a new file
73- self .selenium .find_element (By .ID , "id_file" ).send_keys (
74- os .getcwd () + "/screenshot.png"
75- )
83+ self .selenium .find_element (By .ID , "id_file" ).send_keys (os .getcwd () + "/screenshot.png" )
7684
7785 self .selenium .find_element (By .NAME , "_continue" ).click ()
7886
@@ -110,19 +118,15 @@ def test_should_save_file_changes(self):
110118 name = "item" , price = 1 , currency = Item .VALID_CURRENCIES [0 ][0 ], file = file
111119 )
112120
113- self .selenium .get (
114- self .live_server_url + f"/admin/market/item/{ item .id } /change/"
115- )
121+ self .selenium .get (self .live_server_url + f"/admin/market/item/{ item .id } /change/" )
116122 self .assertIn (CONFIRM_CHANGE , self .selenium .page_source )
117123
118124 # Make a change to trigger confirmation page
119125 price = self .selenium .find_element (By .NAME , "price" )
120126 price .send_keys (2 )
121127
122128 # Upload a new file
123- self .selenium .find_element (By .ID , "id_file" ).send_keys (
124- os .getcwd () + "/screenshot.png"
125- )
129+ self .selenium .find_element (By .ID , "id_file" ).send_keys (os .getcwd () + "/screenshot.png" )
126130
127131 self .selenium .find_element (By .NAME , "_continue" ).click ()
128132
@@ -143,9 +147,7 @@ def test_should_save_file_changes(self):
143147 objects = [obj for obj in self .bucket .objects .all ()]
144148 self .assertEqual (len (objects ), 2 )
145149 get_last_modified = lambda obj : int (obj .last_modified .strftime ("%s" ))
146- objects_by_last_modified = [
147- obj for obj in sorted (objects , key = get_last_modified )
148- ]
150+ objects_by_last_modified = [obj for obj in sorted (objects , key = get_last_modified )]
149151 self .assertRegex (objects_by_last_modified [- 1 ].key , r"screenshot.*\.png$" )
150152 self .assertRegex (objects_by_last_modified [0 ].key , r"old_file.*\.jpg$" )
151153
@@ -159,9 +161,7 @@ def test_should_remove_file_if_clear_selected(self):
159161 name = "item" , price = 1 , currency = Item .VALID_CURRENCIES [0 ][0 ], file = file
160162 )
161163
162- self .selenium .get (
163- self .live_server_url + f"/admin/market/item/{ item .id } /change/"
164- )
164+ self .selenium .get (self .live_server_url + f"/admin/market/item/{ item .id } /change/" )
165165 self .assertIn (CONFIRM_CHANGE , self .selenium .page_source )
166166
167167 # Make a change to trigger confirmation page
@@ -171,9 +171,9 @@ def test_should_remove_file_if_clear_selected(self):
171171 # Choose to clear the existing file
172172 self .selenium .find_element (By .ID , "file-clear_id" ).click ()
173173 self .assertTrue (
174- self .selenium .find_element (
175- By . XPATH , ".//*[@id='file-clear_id'] "
176- ). get_attribute ( "checked" )
174+ self .selenium .find_element (By . XPATH , ".//*[@id='file-clear_id']" ). get_attribute (
175+ "checked "
176+ )
177177 )
178178
179179 self .selenium .find_element (By .NAME , "_continue" ).click ()
0 commit comments