Send platform info and python version in User-Agent

This commit is contained in:
Marcin Kulik
2013-10-11 18:47:02 +02:00
parent 422bbe20af
commit 57ec3a3558
3 changed files with 12 additions and 6 deletions

View File

@@ -11,8 +11,6 @@ class Asciicast(object):
self.shell = env['SHELL']
self.term = env['TERM']
self.username = env['USER']
unametemp = os.uname()
self.uname = "%s %s %s %s" % (unametemp[0], unametemp[2], unametemp[3], unametemp[4])
@property
def meta_data(self):
@@ -25,7 +23,6 @@ class Asciicast(object):
'title' : self.title,
'command' : self.command,
'shell' : self.shell,
'uname' : self.uname,
'term' : {
'type' : self.term,
'lines' : lines,

View File

@@ -1,5 +1,6 @@
import json
import bz2
import platform
from asciinema import __version__
from .requests_http_adapter import RequestsHttpAdapter
@@ -28,7 +29,7 @@ class Uploader(object):
}
def _headers(self):
return { 'User-Agent': 'asciinema/%s' % __version__ }
return { 'User-Agent': self._user_agent() }
def _stdout_data_file(self, stdout):
return ('stdout', bz2.compress(stdout.data))
@@ -45,3 +46,7 @@ class Uploader(object):
data = dict(list(meta_data.items()) + list(auth_data.items()))
return json.dumps(data)
def _user_agent(self):
return 'asciinema/%s (%s) python/%s' % \
(__version__, platform.platform(), platform.python_version())

View File

@@ -1,5 +1,6 @@
import json
import bz2
import platform
from nose.tools import assert_equal
from .test_helper import Test, FakeAsciicast
from asciinema import __version__
@@ -45,8 +46,7 @@ class TestUploader(Test):
assert_equal(b'success!', response_body)
assert_equal('http://api/url/api/asciicasts', self.http_adapter.url)
assert_equal(self._expected_files(), self.http_adapter.files)
assert_equal({ 'User-Agent': 'asciinema/%s' % __version__ },
self.http_adapter.headers)
assert_equal(self._expected_headers(), self.http_adapter.headers)
def _expected_files(self):
return {
@@ -58,3 +58,7 @@ class TestUploader(Test):
'asciicast[stdout_timing]':
('stdout.time', bz2.compress(b'timing456'))
}
def _expected_headers(self):
return { 'User-Agent': 'asciinema/%s (%s) python/%s' %
(__version__, platform.platform(), platform.python_version()) }