Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ click>=8.0.0
pip>=10.0.0
semver>=2.0.0,<3.0.0
pyjwt>=2.4.0
black==22.3.0
black==24.3.0

# project.optional-dependencies.test
coverage
Expand Down
1 change: 1 addition & 0 deletions rsconnect/actions_content.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
Public API for administering content.
"""

import json
import time
import traceback
Expand Down
1 change: 1 addition & 0 deletions rsconnect/http_support.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
HTTP support wrappers and utility functions
"""

import json
import socket
import ssl
Expand Down
1 change: 1 addition & 0 deletions rsconnect/log.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
Logging wrapper and shared instance
"""

import json
import logging
from functools import partial, wraps
Expand Down
1 change: 1 addition & 0 deletions rsconnect/metadata.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
Metadata management objects and utility functions
"""

import base64
import hashlib
import json
Expand Down
1 change: 1 addition & 0 deletions rsconnect/models.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
Data models
"""

import os
import re

Expand Down
70 changes: 46 additions & 24 deletions tests/test_main_content.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
# would be preferable but this is fine for now.
TEMP_DIR = "rsconnect-build-test"


def register_uris(connect_server: str):
def register_content_endpoints(i: int, guid: str):
httpretty.register_uri(
Expand All @@ -38,10 +39,10 @@ def register_content_endpoints(i: int, guid: str):
httpretty.register_uri(
httpretty.GET,
f"{connect_server}/__api__/applications/{guid}/config",
body='{' +
f'"config_url": "{connect_server}/connect/#/apps/{guid}",' +
f'"logs_url": "{connect_server}/connect/#/apps/{guid}"' +
'}',
body="{"
+ f'"config_url": "{connect_server}/connect/#/apps/{guid}",'
+ f'"logs_url": "{connect_server}/connect/#/apps/{guid}"'
+ "}",
adding_headers={"Content-Type": "application/json"},
)

Expand Down Expand Up @@ -88,6 +89,7 @@ def register_content_endpoints(i: int, guid: str):
register_content_endpoints(2, "ab497e4b-b706-4ae7-be49-228979a95eb4")
register_content_endpoints(3, "cdfed1f7-0e09-40eb-996d-0ef77ea2d797")


class TestContentSubcommand(unittest.TestCase):
@classmethod
def tearDownClass(cls):
Expand Down Expand Up @@ -120,9 +122,14 @@ def test_content_search(self):
def test_content_describe(self):
register_uris(self.connect_server)
runner = CliRunner()
args = ["content", "describe",
"-g", "7d59c5c7-c4a7-4950-acc3-3943b7192bc4",
"-g", "ab497e4b-b706-4ae7-be49-228979a95eb4"]
args = [
"content",
"describe",
"-g",
"7d59c5c7-c4a7-4950-acc3-3943b7192bc4",
"-g",
"ab497e4b-b706-4ae7-be49-228979a95eb4",
]
apply_common_args(args, server=self.connect_server, key=self.api_key)
result = runner.invoke(cli, args)
self.assertEqual(result.exit_code, 0, result.output)
Expand All @@ -136,9 +143,14 @@ def test_content_describe(self):
def test_content_download_bundle(self):
register_uris(self.connect_server)
runner = CliRunner()
args = ["content", "download-bundle",
"-g", "7d59c5c7-c4a7-4950-acc3-3943b7192bc4",
"-o", f"{TEMP_DIR}/bundle.tar.gz"]
args = [
"content",
"download-bundle",
"-g",
"7d59c5c7-c4a7-4950-acc3-3943b7192bc4",
"-o",
f"{TEMP_DIR}/bundle.tar.gz",
]
apply_common_args(args, server=self.connect_server, key=self.api_key)
result = runner.invoke(cli, args)
self.assertEqual(result.exit_code, 0, result.output)
Expand All @@ -156,9 +168,7 @@ def test_build(self):
apply_common_args(args, server=self.connect_server, key=self.api_key)
result = runner.invoke(cli, args)
self.assertEqual(result.exit_code, 0, result.output)
self.assertTrue(
os.path.exists("%s/%s.json" % (TEMP_DIR, _normalize_server_url(self.connect_server)))
)
self.assertTrue(os.path.exists("%s/%s.json" % (TEMP_DIR, _normalize_server_url(self.connect_server))))

# list the "tracked" content
args = ["content", "build", "ls", "-g", "7d59c5c7-c4a7-4950-acc3-3943b7192bc4"]
Expand Down Expand Up @@ -192,16 +202,21 @@ def test_build_retry(self):
runner = CliRunner()

# add 3 content items
args = ["content", "build", "add",
"-g", "7d59c5c7-c4a7-4950-acc3-3943b7192bc4",
"-g", "ab497e4b-b706-4ae7-be49-228979a95eb4",
"-g", "cdfed1f7-0e09-40eb-996d-0ef77ea2d797"]
args = [
"content",
"build",
"add",
"-g",
"7d59c5c7-c4a7-4950-acc3-3943b7192bc4",
"-g",
"ab497e4b-b706-4ae7-be49-228979a95eb4",
"-g",
"cdfed1f7-0e09-40eb-996d-0ef77ea2d797",
]
apply_common_args(args, server=self.connect_server, key=self.api_key)
result = runner.invoke(cli, args)
self.assertEqual(result.exit_code, 0, result.output)
self.assertTrue(
os.path.exists("%s/%s.json" % (TEMP_DIR, _normalize_server_url(self.connect_server)))
)
self.assertTrue(os.path.exists("%s/%s.json" % (TEMP_DIR, _normalize_server_url(self.connect_server))))

# change the content build status so it looks like it was interrupted/failed
store = ContentBuildStore(RSConnectServer(self.connect_server, self.api_key))
Expand All @@ -216,10 +231,17 @@ def test_build_retry(self):
self.assertEqual(result.exit_code, 0, result.output)

# check that the build succeeded
args = ["content", "build", "ls",
"-g", "7d59c5c7-c4a7-4950-acc3-3943b7192bc4",
"-g", "ab497e4b-b706-4ae7-be49-228979a95eb4",
"-g", "cdfed1f7-0e09-40eb-996d-0ef77ea2d797"]
args = [
"content",
"build",
"ls",
"-g",
"7d59c5c7-c4a7-4950-acc3-3943b7192bc4",
"-g",
"ab497e4b-b706-4ae7-be49-228979a95eb4",
"-g",
"cdfed1f7-0e09-40eb-996d-0ef77ea2d797",
]
apply_common_args(args, server=self.connect_server, key=self.api_key)
result = runner.invoke(cli, args)
self.assertEqual(result.exit_code, 0, result.output)
Expand Down
2 changes: 1 addition & 1 deletion tests/test_utils_package.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from textwrap import dedent
from rsconnect.utils_package import (
_remove_leading_zeros, # pyright: ignore[reportPrivateUsage]
_remove_leading_zeros, # pyright: ignore[reportPrivateUsage]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aside: This adjustment was needed with the previous version of black, as well. We didn't see it because lint problems go unseen in CI (likely because fmt is run before lint).

compare_package_versions,
compare_semvers,
parse_requirements_txt,
Expand Down