Coverage for app/venv/lib/python3.14/site-packages/weblate/api/routers.py: 100%

10 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 07:15 +0000

1# Copyright © Michal Čihař <michal@weblate.org> 

2# 

3# SPDX-License-Identifier: GPL-3.0-or-later 

4 

5from rest_framework import routers 

6 

7 

8class WeblateRouter(routers.DefaultRouter): 

9 def get_lookup_regex(self, viewset, lookup_prefix=""): 

10 """ 

11 Get lookup regex for a viewset. 

12 

13 Given a viewset, return the portion of URL regex that is used 

14 to match against a single instance. 

15 

16 Note that lookup_prefix is not used directly inside REST rest_framework 

17 itself, but is required in order to nicely support nested router 

18 implementations, such as drf-nested-routers. 

19 

20 https://github.com/alanjds/drf-nested-routers 

21 """ 

22 base_regex = "(?P<{lookup_prefix}{lookup_url_kwarg}>{lookup_value})" 

23 # Use `pk` as default field, unset set. Default regex should not 

24 # consume `.json` style suffixes and should break at '/' boundaries. 

25 lookup_field = getattr(viewset, "lookup_field", "pk") 

26 lookup_fields = getattr(viewset, "lookup_fields", None) 

27 if lookup_fields is None: 

28 lookup_fields = [lookup_field] 

29 

30 lookup_value = getattr(viewset, "lookup_value_regex", "[^/]+") 

31 

32 return "/".join( 

33 base_regex.format( 

34 lookup_prefix=lookup_prefix, 

35 lookup_url_kwarg=field, 

36 lookup_value=lookup_value, 

37 ) 

38 for field in lookup_fields 

39 )