Skip to main content

Accessing Windows from Linux

Project description

Accessing Windows from Linux

pypi version Build status Coverage Code style: black Number of tests Number of downloads

Retrieve a file (from Windows to Linux)

import pyndows

path_to_retrieved_file = ""
with pyndows.connect(...) as machine:
    pyndows.get(machine, "shared_folder_name", "/folder/requested_file_name", path_to_retrieved_file)

Retrieve a file description (from Windows to Linux)

import pyndows

with pyndows.connect(...) as machine:
    description = pyndows.get_file_desc(machine, "shared_folder_name", "/folder/requested_file_name")

Move a file (from Linux to Windows)

import pyndows

file_to_move_path = ""
with pyndows.connect(...) as machine:
    pyndows.move(machine, "shared_folder_name", "/folder/destination_file_name", file_to_move_path)

You can also provide a custom suffix for the temporary file (.tmp is used by default) via the temp_file_suffix parameter.

Rename a file

import pyndows

with pyndows.connect(...) as machine:
    pyndows.rename(machine, "shared_folder_name", "/folder/previous_file_name", "/folder/new_file_name")

Ensure connectivity

import pyndows

with pyndows.connect(...) as machine:
    details = pyndows.check("connection identifier", machine)

Testing

You can mock remote connections by using samba_mock pytest fixture.

You can simulate every Samba connection behavior such as:

  • Exceptions being thrown
  • Connectivity issue
  • echo responses

And of course, the following usual operations:

Simulate a file that can be retrieved

from pyndows.testing import samba_mock, SMBConnectionMock

def test_file_retrieval(samba_mock: SMBConnectionMock):
    samba_mock.files_to_retrieve[("shared_folder_name", "/folder/file_to_retrieve")] = "File content of path to a file"

Ensure the content of a file that was moved or renamed

from pyndows.testing import samba_mock, SMBConnectionMock

def test_file_retrieval(samba_mock: SMBConnectionMock):
    file_content = samba_mock.stored_files[("shared_folder_name", "/folder/file_that_was_stored")]

How to install

  1. python 3.6+ must be installed
  2. Use pip to install module:
python -m pip install pyndows

Project details


Release history Release notifications

This version

3.1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pyndows, version 3.1.0
Filename, size File type Python version Upload date Hashes
Filename, size pyndows-3.1.0-py3-none-any.whl (6.7 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size pyndows-3.1.0.tar.gz (5.3 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page