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

SwissDataScienceCenter / renku-data-services / 8283554797

14 Mar 2024 03:41PM UTC coverage: 88.58% (+0.2%) from 88.374%
8283554797

push

gihub-action

web-flow
feat: add support for Renku 2.0 sessions (#133)

See https://github.com/SwissDataScienceCenter/renku/issues/3475.

* Adds API endpoints for session environments
* Adds API endpoints for session launchers

424 of 468 new or added lines in 12 files covered. (90.6%)

5073 of 5727 relevant lines covered (88.58%)

0.89 hits per line

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

95.35
/components/renku_data_services/session/models.py
1
"""Models for Sessions."""
1✔
2

3
from dataclasses import dataclass
1✔
4
from datetime import datetime
1✔
5

6
from pydantic import BaseModel, model_validator
1✔
7

8
from renku_data_services import errors
1✔
9
from renku_data_services.session.apispec import EnvironmentKind
1✔
10

11

12
@dataclass(frozen=True, eq=True, kw_only=True)
1✔
13
class Member(BaseModel):
1✔
14
    """Member model."""
1✔
15

16
    id: str
1✔
17

18

19
@dataclass(frozen=True, eq=True, kw_only=True)
1✔
20
class Environment(BaseModel):
1✔
21
    """Session environment model."""
1✔
22

23
    id: str | None
1✔
24
    name: str
1✔
25
    creation_date: datetime
1✔
26
    description: str | None
1✔
27
    container_image: str
1✔
28
    default_url: str | None
1✔
29
    created_by: Member
1✔
30

31

32
@dataclass(frozen=True, eq=True, kw_only=True)
1✔
33
class SessionLauncher(BaseModel):
1✔
34
    """Session launcher model."""
1✔
35

36
    id: str | None
1✔
37
    project_id: str
1✔
38
    name: str
1✔
39
    creation_date: datetime
1✔
40
    description: str | None
1✔
41
    environment_kind: EnvironmentKind
1✔
42
    environment_id: str | None
1✔
43
    container_image: str | None
1✔
44
    default_url: str | None
1✔
45
    created_by: Member
1✔
46

47
    @model_validator(mode="after")
1✔
48
    def check_launcher_environment_kind(self):
1✔
49
        """Validates the environment of a launcher."""
50

51
        environment_kind = self.environment_kind
1✔
52
        environment_id = self.environment_id
1✔
53
        container_image = self.container_image
1✔
54

55
        if environment_kind == EnvironmentKind.global_environment and environment_id is None:
1✔
NEW
56
            raise errors.ValidationError(message="'environment_id' not set when environment_kind=global_environment")
×
57

58
        if environment_kind == EnvironmentKind.container_image and container_image is None:
1✔
NEW
59
            raise errors.ValidationError(message="'container_image' not set when environment_kind=container_image")
×
60

61
        return self
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

© 2026 Coveralls, Inc