Skip to content

Commit 56bab48

Browse files
authored
Merge pull request #3 from mattip/mercurial
BUG: stdout is bytes on python3
2 parents 47c2062 + a4919d4 commit 56bab48

2 files changed

Lines changed: 63 additions & 1 deletion

File tree

codespeed/commits/mercurial.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def getlogs(endrev, startrev):
6363
if p.returncode != 0:
6464
raise CommitLogError(str(stderr))
6565
else:
66-
stdout = str(stdout).rstrip(b'\n') # Remove last newline
66+
stdout = stdout.decode('utf-8').rstrip('\n') # Remove last newline
6767
logs = []
6868
for log in stdout.split("=newlog=\n"):
6969
elements = []

codespeed/tests/test_commits.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# -*- coding: utf-8 -*-
2+
from datetime import datetime, timedelta
3+
import subprocess
4+
import tempfile
5+
import os
6+
7+
from django.test import TestCase, override_settings
8+
from django.urls import reverse
9+
10+
from codespeed.models import (Project, Benchmark, Revision, Branch, Executable,
11+
Environment, Result, Report)
12+
13+
hgdir = ''
14+
15+
def setUpModule():
16+
global hgdir
17+
hgdir = tempfile.TemporaryDirectory()
18+
subprocess.check_call(['hg', 'init'], cwd=hgdir.name)
19+
# Add some commits
20+
readme = os.path.join(hgdir.name, 'README.md')
21+
file1 = os.path.join(hgdir.name, 'file1.py')
22+
with open(readme, 'w') as hg_file:
23+
hg_file.write('readme')
24+
subprocess.check_call(['hg', 'add', readme], cwd=hgdir.name)
25+
subprocess.check_call(['hg', 'commit', '-m', "first commit"], cwd=hgdir.name)
26+
with open(file1, 'w') as hg_file:
27+
hg_file.write('value = 10')
28+
subprocess.check_call(['hg', 'add', file1], cwd=hgdir.name)
29+
subprocess.check_call(['hg', 'commit', '-m', "second commit"], cwd=hgdir.name)
30+
31+
def tearDownModule():
32+
hgdir.cleanup()
33+
34+
class TestMercurial(TestCase):
35+
36+
def setUp(self):
37+
self.days = 0
38+
self.hgdir = hgdir.name
39+
self.starttime = datetime.now() + timedelta(days=-100)
40+
41+
Project(repo_type='M', name='pro',
42+
repo_path=str(self.hgdir)).save()
43+
self.pro = Project.objects.get(name='pro')
44+
45+
Branch(project=self.pro, name='default').save()
46+
self.b = Branch.objects.get(name='default')
47+
48+
Environment(name='Walden Pond').save()
49+
Executable(name='walden', project=self.pro).save()
50+
Benchmark(name='TestBench').save()
51+
52+
self.env = Environment.objects.get(name='Walden Pond')
53+
self.exe = Executable.objects.get(name='walden')
54+
self.bench = Benchmark.objects.get(name='TestBench')
55+
cmd = ['hg', '-R', self.hgdir, 'id', '-r', '1']
56+
self.cid = subprocess.check_output(cmd).split()[0]
57+
Revision(commitid=self.cid.decode('utf-8'), date=self.starttime, branch=self.b,
58+
project=self.pro).save()
59+
60+
def test_hg(self):
61+
response = self.client.get(reverse('displaylogs'), {'revisionid':1})
62+
assert response.status_code == 200, 'expected 200 got %d' % response.status_code

0 commit comments

Comments
 (0)