Skip to content

Commit b11b822

Browse files
committed
test RepoHelper
1 parent f070d2c commit b11b822

File tree

2 files changed

+34
-13
lines changed

2 files changed

+34
-13
lines changed

elasticgit/search.py

+10-10
Original file line numberDiff line numberDiff line change
@@ -172,21 +172,21 @@ def __init__(self, repo_url):
172172
if any([
173173
repo_url.startswith('http://'),
174174
repo_url.startswith('https://')]):
175-
self.repo_obj = RemoteStorageManager(repo_url)
175+
self.rsm = RemoteStorageManager(repo_url)
176+
self.repo = None
176177
else:
177-
self.repo_obj = Repo(repo_url)
178+
self.rsm = None
179+
self.repo = Repo(repo_url)
178180

179181
def active_branch_name(self):
180-
if isinstance(self.repo_obj, Repo):
181-
return self.repo_obj.active_branch.name
182-
return self.repo_obj.active_branch()
182+
if self.repo:
183+
return self.repo.active_branch.name
184+
return self.rsm.active_branch()
183185

184186
def default_index_prefix(self):
185-
name = os.path.basename(self.repo_url)
186-
name_no_ext, ext = os.path.splitext(name)
187-
if ext in ('.git', '.json'):
188-
return name_no_ext
189-
return name
187+
if self.repo:
188+
return os.path.basename(self.repo_url)
189+
return self.rsm.repo_name
190190

191191

192192
class SM(S):

elasticgit/tests/test_search.py

+24-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
import os
2+
import json
23
from datetime import datetime
34

5+
from mock import patch
6+
from requests import Response
7+
48
from elasticutils import S as SBase
59

610
from elasticgit.tests.base import ModelBaseTest, TestPerson
7-
from elasticgit.search import ReadOnlyModelMappingType, index_name, S, SM
11+
from elasticgit.search import (
12+
ReadOnlyModelMappingType, index_name, S, SM, RepoHelper)
813

914

1015
class TestSearch(ModelBaseTest):
@@ -28,7 +33,7 @@ def test_init(self):
2833

2934
s_obj = SM(TestPerson, in_=repo_workdirs)
3035
self.assertEqual(
31-
[r.repo_obj for r in s_obj.repos],
36+
[r.repo for r in s_obj.repos],
3237
[self.repo1, self.repo2])
3338
self.assertEqual(s_obj.index_prefixes, [
3439
os.path.basename(self.repo1.working_dir),
@@ -37,10 +42,26 @@ def test_init(self):
3742

3843
s_obj = SM(TestPerson, in_=repo_workdirs, index_prefixes=['i1', 'i2'])
3944
self.assertEqual(
40-
[r.repo_obj for r in s_obj.repos],
45+
[r.repo for r in s_obj.repos],
4146
[self.repo1, self.repo2])
4247
self.assertEqual(s_obj.index_prefixes, ['i1', 'i2'])
4348

49+
def test_repo_helper(self):
50+
helper = RepoHelper(self.repo1.working_dir)
51+
self.assertEqual(helper.active_branch_name(), 'master')
52+
self.assertEqual(
53+
helper.default_index_prefix(),
54+
os.path.basename(self.repo1.working_dir))
55+
56+
helper = RepoHelper('http://localhost/repos/repo1.json')
57+
with patch.object(helper.rsm, 'mk_request') as mock:
58+
response = Response()
59+
response.encoding = 'utf-8'
60+
response._content = json.dumps({'branch': 'foo'})
61+
mock.return_value = response
62+
self.assertEqual(helper.active_branch_name(), 'foo')
63+
self.assertEqual(helper.default_index_prefix(), 'repo1')
64+
4465
def test_get_repo_indexes(self):
4566
index1 = index_name(self.index_prefix1, self.repo1.active_branch.name)
4667
index2 = index_name(self.index_prefix2, self.repo2.active_branch.name)

0 commit comments

Comments
 (0)