Skip to content

Commit 0554069

Browse files
authored
Merge pull request #7 from krasoffski/attach
Binary attachment support for issue #4
2 parents db9e3f7 + 5321168 commit 0554069

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

reportportal_client/model/request.py

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,21 +66,10 @@ def __init__(self, end_time=None, status=None, issue=None):
6666
self.issue = issue
6767

6868

69-
class File(RQ):
70-
def __init__(self, name, content):
71-
super(File, self).__init__()
72-
self.name = name
73-
self.content = content
74-
75-
7669
class SaveLogRQ(RQ):
77-
def __init__(self, item_id=None, time=None, message=None, level=None,
78-
file_obj=None):
70+
def __init__(self, item_id=None, time=None, message=None, level=None):
7971
super(SaveLogRQ, self).__init__()
8072
self.item_id = item_id
8173
self.time = time
8274
self.message = message
8375
self.level = level
84-
self.file = None
85-
if file_obj is not None:
86-
self.file = file_obj.data

reportportal_client/service.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import json
12
import requests
23

34
from .model import (EntryCreatedRS, OperationCompletionRS)
@@ -72,3 +73,25 @@ def log(self, save_log_rq):
7273
url = self.uri_join(self.base_url, "log")
7374
r = self.session.post(url=url, json=save_log_rq.as_dict())
7475
return EntryCreatedRS(raw=r.text)
76+
77+
def attach(self, save_log_rq, name, data, mime="application/octet-stream"):
78+
"""Logs message with attachment.
79+
80+
Args:
81+
save_log_rq: SaveLogRQ instance
82+
name: name of attachment
83+
data: fileobj or content
84+
mime: content type for attachment
85+
86+
Returns:
87+
An instance of EntryCreatedRS.
88+
"""
89+
url = self.uri_join(self.base_url, "log")
90+
dct = save_log_rq.as_dict()
91+
dct["file"] = {"name": name}
92+
files = {
93+
"json_request_part": (None, json.dumps([dct]), "application/json"),
94+
"file": (name, data, mime)
95+
}
96+
r = self.session.post(url=url, files=files)
97+
return EntryCreatedRS(raw=r.text)

0 commit comments

Comments
 (0)