Skip to content

Commit 0f9f0c3

Browse files
authored
Add created to SSH Key Domain (#72)
1 parent 180c20e commit 0f9f0c3

4 files changed

Lines changed: 34 additions & 5 deletions

File tree

CHANGELOG.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
History
33
=======
44

5+
master (XXXX-XX-XX)
6+
--------------------
7+
8+
* Feature: Add 'created' property to SSH Key domain
9+
510
1.6.2 (2019-10-15)
611
-------------------
712
* Fix: future dependency requirement was too strict

hcloud/ssh_keys/domain.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# -*- coding: utf-8 -*-
22
from hcloud.core.domain import BaseDomain, DomainIdentityMixin
33

4+
from hcloud.helpers.descriptors import ISODateTime
5+
46

57
class SSHKey(BaseDomain, DomainIdentityMixin):
68
"""SSHKey Domain
@@ -15,6 +17,8 @@ class SSHKey(BaseDomain, DomainIdentityMixin):
1517
Public Key
1618
:param labels: Dict
1719
User-defined labels (key-value pairs)
20+
:param created: datetime
21+
Point in time when the SSH Key was created
1822
"""
1923
__slots__ = (
2024
"id",
@@ -24,16 +28,21 @@ class SSHKey(BaseDomain, DomainIdentityMixin):
2428
"labels"
2529
)
2630

31+
created = ISODateTime()
32+
supported_fields = ("created",)
33+
2734
def __init__(
2835
self,
2936
id=None,
3037
name=None,
3138
fingerprint=None,
3239
public_key=None,
33-
labels=None
40+
labels=None,
41+
created=None
3442
):
3543
self.id = id
3644
self.name = name
3745
self.fingerprint = fingerprint
3846
self.public_key = public_key
3947
self.labels = labels
48+
self.created = created

tests/unit/ssh_keys/conftest.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ def ssh_key_response():
99
"name": "My ssh key",
1010
"fingerprint": "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f",
1111
"public_key": "ssh-rsa AAAjjk76kgf...Xt",
12-
"labels": {}
12+
"labels": {},
13+
"created": "2016-01-30T23:50:00+00:00"
1314
}
1415
}
1516

@@ -23,14 +24,16 @@ def two_ssh_keys_response():
2324
"name": "SSH-Key",
2425
"fingerprint": "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f",
2526
"public_key": "ssh-rsa AAAjjk76kgf...Xt",
26-
"labels": {}
27+
"labels": {},
28+
"created": "2016-01-30T23:50:00+00:00"
2729
},
2830
{
2931
"id": 2324,
3032
"name": "SSH-Key",
3133
"fingerprint": "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f",
3234
"public_key": "ssh-rsa AAAjjk76kgf...Xt",
33-
"labels": {}
35+
"labels": {},
36+
"created": "2016-01-30T23:50:00+00:00"
3437
}
3538
]
3639
}
@@ -59,6 +62,7 @@ def response_update_ssh_key():
5962
"name": "New name",
6063
"fingerprint": "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f",
6164
"public_key": "ssh-rsa AAAjjk76kgf...Xt",
62-
"labels": {}
65+
"labels": {},
66+
"created": "2016-01-30T23:50:00+00:00"
6367
}
6468
}

tests/unit/ssh_keys/test_domain.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import datetime
2+
from dateutil.tz import tzoffset
3+
4+
from hcloud.ssh_keys.domain import SSHKey
5+
6+
7+
class TestSSHKey(object):
8+
9+
def test_created_is_datetime(self):
10+
sshKey = SSHKey(id=1, created="2016-01-30T23:50+00:00")
11+
assert sshKey.created == datetime.datetime(2016, 1, 30, 23, 50, tzinfo=tzoffset(None, 0))

0 commit comments

Comments
 (0)