Skip to content

Commit 85cc36d

Browse files
OsOperations::get_platform(self) is added (#24)
This new method returns value that equal to sys.platform - "win32", "linux", ... Tests are added. Testgres (by fact) supports "linux" only.
1 parent 1bd4df5 commit 85cc36d

File tree

4 files changed

+26
-2
lines changed

4 files changed

+26
-2
lines changed

src/local_ops.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import getpass
44
import logging
55
import os
6+
import sys
67
import shutil
78
import stat
89
import subprocess
@@ -75,6 +76,9 @@ def get_single_instance() -> OsOperations:
7576
assert type(__class__.sm_single_instance) == __class__ # noqa: E721
7677
return __class__.sm_single_instance
7778

79+
def get_platform(self) -> str:
80+
return str(sys.platform)
81+
7882
def create_clone(self) -> LocalOperations:
7983
clone = __class__(__class__.sm_dummy_conn_params)
8084
clone.conn_params = copy.copy(self.conn_params)

src/os_ops.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ class OsOperations:
2323
def __init__(self):
2424
pass
2525

26+
def get_platform(self) -> str:
27+
raise NotImplementedError()
28+
2629
def create_clone(self) -> OsOperations:
2730
raise NotImplementedError()
2831

src/remote_ops.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import getpass
44
import os
55
import posixpath
6-
import platform
6+
import sys
77
import subprocess
88
import tempfile
99
import io
@@ -59,7 +59,7 @@ class RemoteOperations(OsOperations):
5959
ssh_dest: str
6060

6161
def __init__(self, conn_params: ConnectionParams):
62-
if not platform.system().lower() == "linux":
62+
if sys.platform != "linux":
6363
raise EnvironmentError("Remote operations are supported only on Linux!")
6464

6565
if conn_params is None:
@@ -86,6 +86,9 @@ def __init__(self, conn_params: ConnectionParams):
8686
def __enter__(self):
8787
return self
8888

89+
def get_platform(self) -> str:
90+
return "linux"
91+
8992
def create_clone(self) -> RemoteOperations:
9093
clone = __class__(__class__.sm_dummy_conn_params)
9194
clone.conn_params = copy.copy(self.conn_params)

tests/test_os_ops_common.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,20 @@ def os_ops(self, request: pytest.FixtureRequest) -> OsOperations:
4242
assert isinstance(request.param, OsOperations)
4343
return request.param
4444

45+
def test_get_platform(self, os_ops: OsOperations):
46+
assert isinstance(os_ops, OsOperations)
47+
p = os_ops.get_platform()
48+
assert p is not None
49+
assert type(p) == str # noqa: E721
50+
assert p == sys.platform
51+
52+
def test_get_platform__is_known(self, os_ops: OsOperations):
53+
assert isinstance(os_ops, OsOperations)
54+
p = os_ops.get_platform()
55+
assert p is not None
56+
assert type(p) == str # noqa: E721
57+
assert p in {"win32", "linux"}
58+
4559
def test_create_clone(self, os_ops: OsOperations):
4660
assert isinstance(os_ops, OsOperations)
4761
clone = os_ops.create_clone()

0 commit comments

Comments
 (0)