Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
from_date=True,
basic_auth=True,
token_auth=True,
archive=True)
parser.parser.add_argument('origin')
return parser
class ClassifiedFieldsBackendCommand(MockedBackendCommand):
"""Mocked backend command for testing classified fields filtering"""
BACKEND = ClassifiedFieldsBackend
class NoArchiveBackendCommand(BackendCommand):
"""Mocked backend command class used for testing which does not support archive"""
BACKEND = CommandBackend
def __init__(self, *args):
super().__init__(*args)
def _pre_init(self):
setattr(self.parsed_args, 'pre_init', True)
def _post_init(self):
setattr(self.parsed_args, 'post_init', True)
@classmethod
def setup_cmd_parser(cls):
parser = BackendCommandArgumentParser(cls.BACKEND,
def test_init(self):
rate_limit = read_file('data/github/rate_limit')
httpretty.register_uri(httpretty.GET,
GITHUB_RATE_LIMIT,
body=rate_limit,
status=200,
forcing_headers={
'X-RateLimit-Remaining': '20',
'X-RateLimit-Reset': '15'
})
client = GitHubClient('zhquan_example', 'repo', 'aaa')
self.assertEqual(client.owner, 'zhquan_example')
self.assertEqual(client.repository, 'repo')
self.assertEqual(client.max_retries, GitHubClient.MAX_RETRIES)
self.assertEqual(client.sleep_time, GitHubClient.DEFAULT_SLEEP_TIME)
self.assertEqual(client.max_retries, GitHubClient.MAX_RETRIES)
self.assertEqual(client.base_url, 'https://api.github.com')
client = GitHubClient('zhquan_example', 'repo', 'aaa', None, False, 3, 20, 2, None, False)
self.assertEqual(client.owner, 'zhquan_example')
self.assertEqual(client.repository, 'repo')
self.assertEqual(client.token, 'aaa')
self.assertEqual(client.base_url, GITHUB_API_URL)
self.assertFalse(client.sleep_for_rate)
self.assertEqual(client.min_rate_to_sleep, 3)
self.assertEqual(client.sleep_time, 20)
def test_archive_manager_on_init(self, mock_expanduser):
"""Test if the archive manager is set when the class is initialized"""
mock_expanduser.return_value = self.test_path
args = ['-u', 'jsmith', '-p', '1234', '-t', 'abcd',
'--from-date', '2015-01-01', '--tag', 'test',
'--output', self.fout_path, 'http://example.com/']
cmd = MockedBackendCommand(*args)
manager = cmd.archive_manager
self.assertIsInstance(manager, ArchiveManager)
self.assertEqual(os.path.exists(manager.dirpath), True)
self.assertEqual(manager.dirpath, self.test_path)
# Due to '--no-archive' is given, Archive Manager isn't set
args = ['-u', 'jsmith', '-p', '1234', '-t', 'abcd',
'--no-archive', '--from-date', '2015-01-01',
'--tag', 'test', '--output', self.fout_path,
'http://example.com/']
cmd = MockedBackendCommand(*args)
self.assertEqual(cmd.archive_manager, None)
def test_fetch_branch(self):
"""Test whether commits are fetched from a Git repository for a given branch"""
new_path = os.path.join(self.tmp_path, 'newgit')
from_date = datetime.datetime(2014, 2, 11, 22, 7, 49)
git = Git(self.git_path, new_path)
# Let's fetch master
commits = [commit for commit in git.fetch(branches=['master'])]
expected = ['bc57a9209f096a130dcc5ba7089a8663f758a703',
'87783129c3f00d2c81a3a8e585eb86a47e39891a',
'7debcf8a2f57f86663809c58b5c07a398be7674c',
'c0d66f92a95e31c77be08dc9d0f11a16715d1885',
'c6ba8f7a1058db3e6b4bc6f1090e932b107605fb',
'589bb080f059834829a2a5955bebfd7c2baa110a',
'ce8e0b86a1e9877f42fe9453ede418519115f367',
'51a3b654f252210572297f47597b31527c475fb8',
'456a68ee1407a77f3e804a30dff245bb6c6b872f']
self.assertEqual(len(commits), len(expected))
for x in range(len(commits)):
def test_fetch_latest_items(self):
"""Test whether latest commits are fetched from a Git repository"""
origin_path = os.path.join(self.tmp_repo_path, 'gittest')
editable_path = os.path.join(self.tmp_path, 'editgit')
new_path = os.path.join(self.tmp_path, 'newgit')
new_file = os.path.join(editable_path, 'newfile')
shutil.copytree(origin_path, editable_path)
git = Git(editable_path, new_path)
commits = [commit for commit in git.fetch(latest_items=True)]
# Count the number of commits before adding some new
expected = [('bc57a9209f096a130dcc5ba7089a8663f758a703', 1344965413.0),
('87783129c3f00d2c81a3a8e585eb86a47e39891a', 1344965535.0),
('7debcf8a2f57f86663809c58b5c07a398be7674c', 1344965607.0),
('c0d66f92a95e31c77be08dc9d0f11a16715d1885', 1344965702.0),
('c6ba8f7a1058db3e6b4bc6f1090e932b107605fb', 1344966351.0),
('589bb080f059834829a2a5955bebfd7c2baa110a', 1344967441.0),
('ce8e0b86a1e9877f42fe9453ede418519115f367', 1392185269.0),
('51a3b654f252210572297f47597b31527c475fb8', 1392185366.0),
('456a68ee1407a77f3e804a30dff245bb6c6b872f', 1392185439.0)]
self.assertEqual(len(commits), len(expected))
for x in range(len(commits)):
for x in range(len(commits)):
expected_uuid = uuid(self.git_path, expected[x][0])
commit = commits[x]
self.assertEqual(commit['data']['commit'], expected[x][0])
self.assertEqual(commit['origin'], self.git_path)
self.assertEqual(commit['uuid'], expected_uuid)
self.assertEqual(commit['updated_on'], expected[x][1])
self.assertEqual(commit['category'], 'commit')
self.assertEqual(commit['tag'], self.git_path)
# Test it using a datetime that includes the timezone
from_date = datetime.datetime(2012, 8, 14, 7, 34, 00,
tzinfo=dateutil.tz.tzoffset(None, -36000))
to_date = datetime.datetime(2012, 8, 14, 14, 30, 00,
tzinfo=dateutil.tz.tzoffset(None, -36000))
git = Git(self.git_path, new_path)
commits = [commit for commit in git.fetch(from_date=from_date, to_date=to_date)]
self.assertEqual(len(commits), len(expected))
for x in range(len(commits)):
expected_uuid = uuid(self.git_path, expected[x][0])
commit = commits[x]
self.assertEqual(commit['data']['commit'], expected[x][0])
self.assertEqual(commit['origin'], self.git_path)
self.assertEqual(commit['uuid'], expected_uuid)
self.assertEqual(commit['updated_on'], expected[x][1])
self.assertEqual(commit['category'], 'commit')
self.assertEqual(commit['tag'], self.git_path)
shutil.rmtree(new_path)
def test_initialization(self):
"""Test whether attributes are initializated"""
git = Git('http://example.com', self.git_path, tag='test')
self.assertEqual(git.uri, 'http://example.com')
self.assertEqual(git.gitpath, self.git_path)
self.assertEqual(git.origin, 'http://example.com')
self.assertEqual(git.tag, 'test')
# When tag is empty or None it will be set to
# the value in uri
git = Git('http://example.com', self.git_path)
self.assertEqual(git.origin, 'http://example.com')
self.assertEqual(git.tag, 'http://example.com')
git = Git('http://example.com', self.git_path, tag='')
self.assertEqual(git.origin, 'http://example.com')
self.assertEqual(git.tag, 'http://example.com')
def test_fetch_empty_log(self):
"""Test whether it parsers an empty log"""
new_path = os.path.join(self.tmp_path, 'newgit')
from_date = datetime.datetime(2020, 1, 1, 1, 1, 1)
git = Git(self.git_path, new_path)
commits = [commit for commit in git.fetch(from_date=from_date)]
self.assertListEqual(commits, [])
to_date = datetime.datetime(1970, 1, 1, 1, 1, 1)
git = Git(self.git_path, new_path)
commits = [commit for commit in git.fetch(to_date=to_date)]
self.assertListEqual(commits, [])
shutil.rmtree(new_path)
"""Test whether attributes are initializated"""
git = Git('http://example.com', self.git_path, tag='test')
self.assertEqual(git.uri, 'http://example.com')
self.assertEqual(git.gitpath, self.git_path)
self.assertEqual(git.origin, 'http://example.com')
self.assertEqual(git.tag, 'test')
# When tag is empty or None it will be set to
# the value in uri
git = Git('http://example.com', self.git_path)
self.assertEqual(git.origin, 'http://example.com')
self.assertEqual(git.tag, 'http://example.com')
git = Git('http://example.com', self.git_path, tag='')
self.assertEqual(git.origin, 'http://example.com')
self.assertEqual(git.tag, 'http://example.com')
def test_fetch_from_file(self):
"""Test whether commits are fetched from a Git log file"""
git = Git('http://example.com.git', os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data/git/git_log.txt'))
commits = [commit for commit in git.fetch()]
expected = [('456a68ee1407a77f3e804a30dff245bb6c6b872f', 1392185439.0),
('51a3b654f252210572297f47597b31527c475fb8', 1392185366.0),
('ce8e0b86a1e9877f42fe9453ede418519115f367', 1392185269.0),
('589bb080f059834829a2a5955bebfd7c2baa110a', 1344967441.0),
('c6ba8f7a1058db3e6b4bc6f1090e932b107605fb', 1344966351.0),
('c0d66f92a95e31c77be08dc9d0f11a16715d1885', 1344965702.0),
('7debcf8a2f57f86663809c58b5c07a398be7674c', 1344965607.0),
('87783129c3f00d2c81a3a8e585eb86a47e39891a', 1344965535.0),
('bc57a9209f096a130dcc5ba7089a8663f758a703', 1344965413.0),
('49345fe87bd1dfad7e682f6554f7472c5576a8c7', 1515508249.0)]
self.assertEqual(len(commits), len(expected))
for x in range(len(commits)):