Skip to content

Commit

Permalink
Merge pull request #3983 from GeotrekCE/upgrade_django_4.2
Browse files Browse the repository at this point in the history
Bump to django 4.2 and run django-upgrade
  • Loading branch information
submarcos committed May 16, 2024
2 parents 4bd5078 + 2cfebd7 commit c3b1909
Show file tree
Hide file tree
Showing 55 changed files with 148 additions and 175 deletions.
1 change: 1 addition & 0 deletions .github/actions/python-cache-requirements/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ runs:
- uses: actions/setup-python@v5
with:
cache: 'pip'
python-version: '3.8'
cache-dependency-path: |
requirements.txt
dev-requirements.txt
Expand Down
16 changes: 12 additions & 4 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:

services:
postgres:
image: postgis/postgis:10-2.5
image: postgis/postgis:12-2.5
env:
POSTGRES_DB: ci_test
POSTGRES_PASSWORD: ci_test
Expand Down Expand Up @@ -217,9 +217,13 @@ jobs:
name: Tests E2E docker
runs-on: ubuntu-20.04
needs: [build_docker_image]
env:
CYPRESS_BASE_URL: http://geotrek.local
CYPRESS_CACHE_FOLDER: ~/cypress/cache

services:
postgres:
image: postgis/postgis:10-2.5
image: postgis/postgis:12-2.5
env:
POSTGRES_DB: ci_test
POSTGRES_PASSWORD: ci_test
Expand Down Expand Up @@ -256,7 +260,11 @@ jobs:
- name: Prepare nginx
run: |
sudo service apache2 stop
sudo apt-get purge apache2 apache2-utils apache2.2-bin
sudo apt-get autoremove
sudo apt-get install -q -y nginx
sudo unlink /etc/nginx/sites-enabled/default
sudo mkdir /var/www/geotrek -p
ls -als
pwd
Expand All @@ -271,7 +279,7 @@ jobs:
npm ci
npm list
echo "Waiting for container..."
while ! nc -z "127.0.0.1" "8000"; do
while ! nc -z "127.0.0.1" "8001"; do
sleep 0.1
done
Expand Down Expand Up @@ -299,7 +307,7 @@ jobs:

services:
postgres:
image: postgis/postgis:10-2.5
image: postgis/postgis:12-2.5
env:
POSTGRES_DB: ci_test
POSTGRES_PASSWORD: ci_test
Expand Down
20 changes: 0 additions & 20 deletions cypress/integration/nav_authent.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,19 +44,6 @@ describe('Login from home page / admin page', () => {
cy.contains("Username");
cy.get('[name="username"]');
})

it('Login admin', () => {
cy.visit('/admin/');
cy.get('[name="username"]')
.type('admin')
.should('have.value', 'admin');
cy.get('[name="password"]')
.type('admin')
.should('have.value', 'admin');
cy.get("input[type='submit']").click();
cy.url().should('include', '/admin/');
cy.url().should('not.include', '/login/?next=/');
})
})


Expand All @@ -78,11 +65,4 @@ describe('Logout', () => {
cy.get("a[href='/logout/']").click();
cy.url().should('include', '/login/');
})


it('Logout admin', () => {
cy.visit('/admin/');
cy.get("a[href='/admin/logout/']").click();
cy.url().should('include', '/admin/logout/');
})
})
2 changes: 1 addition & 1 deletion cypress/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ upstream api_geotrek {
}

server {
listen 8000;
listen 80;
disable_symlinks off;
server_name _;
root /var/www/geotrek/;
Expand Down
10 changes: 5 additions & 5 deletions dev-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ asgiref==3.7.2
# via
# -c requirements.txt
# django
backports-zoneinfo==0.2.1
# via
# -c requirements.txt
# django
build==1.0.0
# via pip-tools
click==8.1.3
Expand All @@ -16,7 +20,7 @@ click==8.1.3
# pip-tools
coverage==7.3.1
# via -r dev-requirements.in
django==3.2.25
django==4.2.11
# via
# -c requirements.txt
# django-debug-toolbar
Expand Down Expand Up @@ -64,10 +68,6 @@ python-dateutil==2.8.2
# -c requirements.txt
# faker
# freezegun
pytz==2023.3.post1
# via
# -c requirements.txt
# django
six==1.16.0
# via
# -c requirements.txt
Expand Down
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ x-images:

services:
postgres:
image: postgis/postgis:11-2.5
image: postgis/postgis:12-2.5
env_file:
- .env
ports:
Expand Down
1 change: 0 additions & 1 deletion geotrek/altimetry/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +0,0 @@
default_app_config = 'geotrek.altimetry.apps.AltimetryConfig'
10 changes: 5 additions & 5 deletions geotrek/api/tests/test_mobile/test_api_mobile.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,21 +120,21 @@ def setUpTestData(cls):
cls.city2 = zoning_factory.CityFactory(geom=MultiPolygon(Polygon.from_bbox(bigger_extent)), published=False)

def get_treks_list(self, lang, params=None):
return self.client.get(reverse('apimobile:treks-list'), params, HTTP_ACCEPT_LANGUAGE=lang)
return self.client.get(reverse('apimobile:treks-list'), params, headers={"accept-language": lang})

def get_treks_detail(self, id_trek, lang, params=None):
return self.client.get(reverse('apimobile:treks-detail', args=(id_trek,)), params, HTTP_ACCEPT_LANGUAGE=lang)
return self.client.get(reverse('apimobile:treks-detail', args=(id_trek,)), params, headers={"accept-language": lang})

def get_poi_list(self, id_trek, lang, params=None):
return self.client.get(reverse('apimobile:treks-pois', args=(id_trek, )), params, HTTP_ACCEPT_LANGUAGE=lang)
return self.client.get(reverse('apimobile:treks-pois', args=(id_trek, )), params, headers={"accept-language": lang})

def get_touristic_content_list(self, id_trek, lang, params=None):
return self.client.get(reverse('apimobile:treks-touristic-contents', args=(id_trek, )), params,
HTTP_ACCEPT_LANGUAGE=lang)
headers={"accept-language": lang})

def get_touristic_event_list(self, id_trek, lang, params=None):
return self.client.get(reverse('apimobile:treks-touristic-events', args=(id_trek, )), params,
HTTP_ACCEPT_LANGUAGE=lang)
headers={"accept-language": lang})


class APIAccessTestCase(BaseApiTest):
Expand Down
36 changes: 18 additions & 18 deletions geotrek/api/tests/test_mobile/test_api_mobile_flatpage.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,11 +128,11 @@ def setUpTestData(cls):
_create_flatpage_and_menuitem(published_fr=True)

def get_flatpage_list(self, params=None):
return self.client.get(reverse('apimobile:flatpage-list'), params, HTTP_ACCEPT_LANGUAGE='fr')
return self.client.get(reverse('apimobile:flatpage-list'), params, headers={"accept-language": 'fr'})

def get_flatpage_detail(self, id_flatpage, params=None):
return self.client.get(reverse('apimobile:flatpage-detail', args=(id_flatpage,)),
params, HTTP_ACCEPT_LANGUAGE='fr')
params, headers={"accept-language": 'fr'})

def test_flatpage_list(self):
response = self.get_flatpage_list()
Expand All @@ -155,15 +155,15 @@ def test_flatpage_detail_with_lang_param(self):

resp = self.client.get(
reverse('apimobile:flatpage-detail', args=(menu(page).pk, )),
HTTP_ACCEPT_LANGUAGE='fr')
headers={"accept-language": 'fr'})

self.assertEqual(resp.status_code, 200)
title = resp.json()["title"]
self.assertEqual(title, "Bonjour")

resp = self.client.get(
reverse('apimobile:flatpage-detail', args=(menu(page).pk,)),
HTTP_ACCEPT_LANGUAGE='en')
headers={"accept-language": 'en'})

self.assertEqual(resp.status_code, 200)
title = resp.json()["title"]
Expand All @@ -173,15 +173,15 @@ def test_flatpage_list_with_lang_param(self):
_create_flatpage_and_menuitem(published_en=True, published_fr=True, title_fr="Bonjour", title_en="Hello")
_create_flatpage_and_menuitem(published_en=True, published_fr=True, title_fr="Au revoir", title_en="Goodbye")

resp = self.client.get(reverse('apimobile:flatpage-list'), HTTP_ACCEPT_LANGUAGE='fr')
resp = self.client.get(reverse('apimobile:flatpage-list'), headers={"accept-language": 'fr'})

self.assertEqual(resp.status_code, 200)
results = resp.json()
self.assertEqual(len(results), 4)
self.assertEqual(results[2]["title"], "Bonjour")
self.assertEqual(results[3]["title"], "Au revoir")

resp = self.client.get(reverse('apimobile:flatpage-list'), HTTP_ACCEPT_LANGUAGE='en')
resp = self.client.get(reverse('apimobile:flatpage-list'), headers={"accept-language": 'en'})

self.assertEqual(resp.status_code, 200)
results = resp.json()
Expand All @@ -197,7 +197,7 @@ def test_flatpage_list_published_only_with_lang_param(self):
page2 = _create_flatpage_and_menuitem(published_en=False, published_fr=True)
page3 = _create_flatpage_and_menuitem(published_en=True, published_fr=True)

resp = self.client.get(reverse('apimobile:flatpage-list'), HTTP_ACCEPT_LANGUAGE='fr')
resp = self.client.get(reverse('apimobile:flatpage-list'), headers={"accept-language": 'fr'})

self.assertEqual(resp.status_code, 200)
results = resp.json()
Expand All @@ -206,7 +206,7 @@ def test_flatpage_list_published_only_with_lang_param(self):
self.assertIn(menu(page2).id, page_ids)
self.assertIn(menu(page3).id, page_ids)

resp = self.client.get(reverse('apimobile:flatpage-list'), HTTP_ACCEPT_LANGUAGE='en')
resp = self.client.get(reverse('apimobile:flatpage-list'), headers={"accept-language": 'en'})

self.assertEqual(resp.status_code, 200)
results = resp.json()
Expand All @@ -221,13 +221,13 @@ def test_flatpage_detail_published_only_with_lang_param(self):

resp = self.client.get(
reverse('apimobile:flatpage-detail', args=(menu(page1).pk, )),
HTTP_ACCEPT_LANGUAGE='fr')
headers={"accept-language": 'fr'})

self.assertEqual(resp.status_code, 404)

resp = self.client.get(
reverse('apimobile:flatpage-detail', args=(menu(page2).pk,)),
HTTP_ACCEPT_LANGUAGE='en')
headers={"accept-language": 'en'})

self.assertEqual(resp.status_code, 404)

Expand All @@ -242,30 +242,30 @@ def test_flatpage_detail_with_portal_filter(self):
resp = self.client.get(
reverse('apimobile:flatpage-detail', args=[menu(page1).pk]),
data={"portal": portal2.name},
HTTP_ACCEPT_LANGUAGE='fr'
headers={"accept-language": 'fr'}
)
self.assertEqual(resp.status_code, 200)
self.assertEqual(resp.json()["id"], menu(page1).id)

resp = self.client.get(
reverse('apimobile:flatpage-detail', args=[menu(page2).pk]),
data={"portal": portal2.name},
HTTP_ACCEPT_LANGUAGE='fr'
headers={"accept-language": 'fr'}
)
self.assertEqual(resp.status_code, 404)

resp = self.client.get(
reverse('apimobile:flatpage-detail', args=[menu(page3).pk]),
data={"portal": portal2.name},
HTTP_ACCEPT_LANGUAGE='fr'
headers={"accept-language": 'fr'}
)
self.assertEqual(resp.status_code, 200)
self.assertEqual(resp.json()["id"], menu(page3).id)

resp = self.client.get(
reverse('apimobile:flatpage-detail', args=[menu(page4).pk]),
data={"portal": portal2.name},
HTTP_ACCEPT_LANGUAGE='fr'
headers={"accept-language": 'fr'}
)
self.assertEqual(resp.status_code, 200)
self.assertEqual(resp.json()["id"], menu(page4).id)
Expand All @@ -282,7 +282,7 @@ def test_flatpage_list_with_portal_filter(self):
resp = self.client.get(
reverse('apimobile:flatpage-list'),
data={"portal": portal2.name},
HTTP_ACCEPT_LANGUAGE='fr'
headers={"accept-language": 'fr'}
)

self.assertEqual(resp.status_code, 200)
Expand All @@ -307,7 +307,7 @@ def test_flatpage_list_returns_ordered_pages(self):

resp = self.client.get(
reverse('apimobile:flatpage-list'),
HTTP_ACCEPT_LANGUAGE='fr'
headers={"accept-language": 'fr'}
)

self.assertEqual(resp.status_code, 200)
Expand All @@ -326,7 +326,7 @@ def test_flatpage_list_filter_by_target(self):

resp = self.client.get(
reverse('apimobile:flatpage-list'),
HTTP_ACCEPT_LANGUAGE='fr'
headers={"accept-language": 'fr'}
)

self.assertEqual(resp.status_code, 200)
Expand All @@ -341,7 +341,7 @@ def test_flatpage_detail_link_only(self):

resp = self.client.get(
reverse('apimobile:flatpage-detail', args=(menu_item.pk, )),
HTTP_ACCEPT_LANGUAGE='fr'
headers={"accept-language": 'fr'}
)

self.assertEqual(resp.status_code, 200)
Expand Down
2 changes: 1 addition & 1 deletion geotrek/api/tests/test_mobile/test_api_mobile_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def setUpTestData(cls):
cls.information_desk = tourism_factories.InformationDeskFactory.create(type=cls.information_desk_type)

def get_settings(self, params=None):
return self.client.get(reverse('apimobile:settings'), params, HTTP_ACCEPT_LANGUAGE='fr')
return self.client.get(reverse('apimobile:settings'), params, headers={"accept-language": 'fr'})

def test_settings_structure(self):
response = self.get_settings()
Expand Down
4 changes: 2 additions & 2 deletions geotrek/api/tests/test_v2.py
Original file line number Diff line number Diff line change
Expand Up @@ -5372,14 +5372,14 @@ def test_cache_invalidates_along_x_forwarded_proto_header(self):
# we used custom header, cache is invalidate and url is now https
with self.assertNumQueries(2):
response = self.client.get(reverse('apiv2:practice-detail', args=(self.practice.pk,)),
HTTP_X_FORWARDED_PROTO='https')
headers={"x-forwarded-proto": 'https'})
data = response.json()
self.assertTrue(data['pictogram'].startswith('https://'))

# cache is hit
with self.assertNumQueries(1):
response = self.client.get(reverse('apiv2:practice-detail', args=(self.practice.pk,)),
HTTP_X_FORWARDED_PROTO='https')
headers={"x-forwarded-proto": 'https'})
data = response.json()
self.assertTrue(data['pictogram'].startswith('https://'))

Expand Down
1 change: 0 additions & 1 deletion geotrek/authent/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +0,0 @@
default_app_config = 'geotrek.authent.apps.AuthentConfig'
4 changes: 2 additions & 2 deletions geotrek/authent/middleware.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ def __init__(self, get_response):
self.get_response = get_response

def __call__(self, request):
user_agent = request.META.get('HTTP_USER_AGENT')
user_agent = request.headers.get('user-agent')
is_api_call = (user_agent is None or 'geotrek' in user_agent)
forced_language = request.META.get('HTTP_ACCEPT_LANGUAGE')
forced_language = request.headers.get('accept-language')
if is_api_call and forced_language and hasattr(request, 'session'):
request.session['django_language'] = forced_language
return self.get_response(request)
Expand Down
1 change: 0 additions & 1 deletion geotrek/cirkwi/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +0,0 @@
default_app_config = 'geotrek.cirkwi.apps.CirkwiConfig'
6 changes: 1 addition & 5 deletions geotrek/cirkwi/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,7 @@
from .models import CirkwiTag, CirkwiLocomotion, CirkwiPOICategory


@admin.register(CirkwiLocomotion, CirkwiPOICategory, CirkwiTag)
class CirkwiAdmin(admin.ModelAdmin):
list_display = ('name', 'eid')
search_fields = ('name', '=eid')


admin.site.register(CirkwiTag, CirkwiAdmin)
admin.site.register(CirkwiLocomotion, CirkwiAdmin)
admin.site.register(CirkwiPOICategory, CirkwiAdmin)
4 changes: 2 additions & 2 deletions geotrek/cirkwi/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from django.contrib.gis.db.models.functions import Transform
from django.urls import reverse
from django.utils import translation
from django.utils.timezone import utc, make_aware
from django.utils.timezone import make_aware
from django.utils.translation import get_language
from django.utils.xmlutils import SimplerXMLGenerator

Expand All @@ -14,7 +14,7 @@


def timestamp(dt):
epoch = make_aware(datetime.datetime(1970, 1, 1), utc)
epoch = make_aware(datetime.datetime(1970, 1, 1), datetime.timezone.utc)
return str(int((dt - epoch).total_seconds()))


Expand Down

0 comments on commit c3b1909

Please sign in to comment.