def test_should_upload_dists(self, mock_token): # Create temporary file to upload dummy_file_path = os.path.join(temp_dir, "dist", "testupload.md") os.makedirs(os.path.dirname(dummy_file_path), exist_ok=True) dummy_content = "# Test File\n\n*Dummy asset for testing uploads.*" with open(dummy_file_path, "w") as dummy_file: dummy_file.write(dummy_content) def request_callback(request): self.assertTrue(dummy_content in request.body.decode()) self.assertEqual(request.url, self.dist_asset_url_params) self.assertTrue("multipart/form-data" in request.headers["Content-Type"]) self.assertEqual("token super-token", request.headers.get("Authorization")) return 201, {}, json.dumps({}) responses.add( responses.GET, self.get_url, status=200, body='{"id": 1}', content_type="application/json", ) responses.add_callback( responses.POST, self.asset_url, callback=request_callback ) status = Gitea.upload_dists( "gitea", "tea", "1.0.0", os.path.dirname(dummy_file_path) ) self.assertTrue(status) # Remove test file os.remove(dummy_file_path)
def test_should_upload_asset_with_no_extension(self, mock_token): # Create temporary file to upload dummy_file_path = os.path.join(temp_dir, "testupload-no-extension") os.makedirs(os.path.dirname(dummy_file_path), exist_ok=True) dummy_content = ( "# Test File with no extension\n\n*Dummy asset for testing uploads.*" ) with open(dummy_file_path, "w") as dummy_file: dummy_file.write(dummy_content) def request_callback(request): self.assertTrue(dummy_content in request.body.decode()) self.assertEqual(request.url, self.asset_no_extension_url_params) self.assertTrue("multipart/form-data" in request.headers["Content-Type"]) self.assertEqual("token super-token", request.headers["Authorization"]) return 201, {}, json.dumps({}) responses.add_callback( responses.POST, self.asset_url, callback=request_callback ) status = Gitea.upload_asset( "gitea", "tea", 1, dummy_file_path, "Dummy file no extension" ) self.assertTrue(status) # Remove test file os.remove(dummy_file_path)
def test_should_post_changelog_using_netrc(self, mock_token): with NamedTemporaryFile("w") as netrc_file: netrc_file.write("machine gitea.com\n") netrc_file.write("login username\n") netrc_file.write("password password\n") netrc_file.flush() def request_callback(request): payload = json.loads(request.body) self.assertEqual(payload["tag_name"], "v1.0.0") self.assertEqual(payload["body"], "text") self.assertEqual(payload["draft"], False) self.assertEqual(payload["prerelease"], False) self.assertEqual( "Basic " + base64.encodebytes(b"username:password").decode("ascii").strip(), request.headers.get("Authorization"), ) return 201, {}, json.dumps({}) responses.add_callback( responses.POST, self.url, callback=request_callback, content_type="application/json", ) with mock.patch.dict(os.environ, {"NETRC": netrc_file.name}): status = Gitea.post_release_changelog("gitea", "tea", "1.0.0", "text") self.assertTrue(status)
def test_should_return_true_if_success(self): responses.add( responses.GET, self.url, body=self.get_response("success"), content_type="application/json", ) self.assertTrue( Gitea.check_build_status( "gitea", "tea", "268aa061795d53a1914b734c479b7c1f62cfd7af" ) )
def test_should_return_false_status_if_it_failed(self): responses.add( responses.POST, self.url, status=400, body="{}", content_type="application/json", ) responses.add( responses.GET, self.get_url, status=200, body='{"id": 1}', content_type="application/json", ) responses.add( responses.POST, self.edit_url, status=400, body="{}", content_type="application/json", ) self.assertFalse(Gitea.post_release_changelog("gitea", "tea", "1.0.0", "text"))
def test_gitea_token(): with mock.patch("os.environ", {"GITEA_TOKEN": "token"}): assert Gitea.token() == "token"