• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Problematy / goodmap / 11596271576

30 Oct 2024 03:18PM UTC coverage: 91.239% (-4.1%) from 95.38%
11596271576

Pull #150

github

web-flow
Merge ec105c52e into 1a6fe12ec
Pull Request #150: Feature/accessibility table

85 of 91 branches covered (93.41%)

Branch coverage included in aggregate %.

12 of 23 new or added lines in 1 file covered. (52.17%)

217 of 240 relevant lines covered (90.42%)

0.9 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

71.7
/goodmap/core.py
1
from typing import Any, Dict, List
1✔
2

3

4
def does_fulfill_requirement(entry, requirements):
1✔
5
    matches = []
1✔
6
    for category, values in requirements:
1✔
7
        if not values:
1✔
8
            continue
1✔
9
        matches.append(all(entry_value in entry[category] for entry_value in values))
1✔
10
    return all(matches)
1✔
11

12

13
def sort_by_lat_lon(data: List[Dict[str, Any]], query_params: Dict[str, List[str]]):
1✔
14
    try:
1✔
15
        if "lat" in query_params and "lon" in query_params:
1✔
NEW
16
            lat = float(query_params["lat"][0])
×
NEW
17
            lon = float(query_params["lon"][0])
×
NEW
18
            data.sort(key=lambda x: (x["position"][0] - lat) ** 2 + (x["position"][1] - lon) ** 2)
×
NEW
19
            return data
×
20
        return data
1✔
NEW
21
    except (ValueError, KeyError, IndexError):
×
NEW
22
        return data
×
23

24

25
def limit(data, query_params, limit: int):
1✔
26
    try:
1✔
27
        if "limit" in query_params:
1✔
NEW
28
            limit = int(query_params["limit"][0])
×
NEW
29
            data = data[:limit]
×
NEW
30
            return data
×
31
        return data
1✔
NEW
32
    except (ValueError, KeyError, IndexError):
×
NEW
33
        return data
×
34

35

36
def get_queried_data(all_data, categories, query_params):
1✔
37
    requirements = []
1✔
38
    for key in categories.keys():
1✔
39
        requirements.append((key, query_params.get(key)))
1✔
40

41
    filtered_data = [x for x in all_data if does_fulfill_requirement(x, requirements)]
1✔
42
    final_data = sort_by_lat_lon(filtered_data, query_params)
1✔
43
    final_data = limit(final_data, query_params, 10)
1✔
44
    return final_data
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc