|
1 | 1 | # coding: utf8 |
2 | 2 | import sys |
3 | | -from datetime import datetime, timezone |
| 3 | +from datetime import datetime, timedelta, timezone |
4 | 4 |
|
5 | 5 | import pytest |
6 | 6 |
|
|
9 | 9 | from atlassian.bitbucket.cloud.common.users import User |
10 | 10 | from atlassian.bitbucket.cloud.repositories import WorkspaceRepositories |
11 | 11 | from atlassian.bitbucket.cloud.repositories.commits import Commit as RepositoryCommit |
| 12 | +from atlassian.bitbucket.cloud.repositories.pipelines import Pipeline |
12 | 13 | from atlassian.bitbucket.cloud.repositories.pullRequests import ( |
13 | 14 | Build, |
14 | 15 | Comment, |
@@ -52,6 +53,28 @@ def test_commit_date_parses_iso8601_timestamps(self, timestamp, expected): |
52 | 53 |
|
53 | 54 | assert commit.date == expected |
54 | 55 |
|
| 56 | + @pytest.mark.parametrize( |
| 57 | + "timestamp, expected", |
| 58 | + [ |
| 59 | + ( |
| 60 | + "2026-08-15T23:19:42.71295178+00:00", |
| 61 | + datetime(2026, 8, 15, 23, 19, 42, 712951, tzinfo=timezone.utc), |
| 62 | + ), |
| 63 | + ( |
| 64 | + "2026-08-15T23:19:42.7+05:30", |
| 65 | + datetime(2026, 8, 15, 23, 19, 42, 700000, tzinfo=timezone(timedelta(hours=5, minutes=30))), |
| 66 | + ), |
| 67 | + ], |
| 68 | + ) |
| 69 | + def test_pipeline_time_normalizes_variable_fractional_seconds(self, timestamp, expected): |
| 70 | + pipeline = Pipeline( |
| 71 | + "https://api.bitbucket.org/2.0/repositories/workspace/repository/pipelines/{pipeline}", |
| 72 | + {"type": "pipeline", "completed_on": timestamp}, |
| 73 | + **CLOUD._new_session_args, |
| 74 | + ) |
| 75 | + |
| 76 | + assert pipeline.completed_on == expected |
| 77 | + |
55 | 78 | def test_each_workspace_uses_user_workspaces_endpoint(self, monkeypatch): |
56 | 79 | workspaces = CLOUD.workspaces |
57 | 80 | workspace = object() |
|
0 commit comments