blob: 51171a32483ede2308c34d21207e04ace7769e53 [file] [log] [blame]
Mike Frysingerca540ae2019-07-10 15:42:30 -04001# -*- coding:utf-8 -*-
2#
3# Copyright 2019 The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
Mike Frysinger87deaef2019-07-26 21:14:55 -040017"""Unittests for the git_command.py module."""
18
19from __future__ import print_function
20
Mike Frysinger369814b2019-07-10 17:10:07 -040021import re
Mike Frysingerca540ae2019-07-10 15:42:30 -040022import unittest
23
24import git_command
25
26
27class GitCallUnitTest(unittest.TestCase):
28 """Tests the _GitCall class (via git_command.git)."""
29
30 def test_version_tuple(self):
31 """Check git.version_tuple() handling."""
32 ver = git_command.git.version_tuple()
33 self.assertIsNotNone(ver)
34
35 # We don't dive too deep into the values here to avoid having to update
36 # whenever git versions change. We do check relative to this min version
37 # as this is what `repo` itself requires via MIN_GIT_VERSION.
38 MIN_GIT_VERSION = (1, 7, 2)
39 self.assertTrue(isinstance(ver.major, int))
40 self.assertTrue(isinstance(ver.minor, int))
41 self.assertTrue(isinstance(ver.micro, int))
42
43 self.assertGreater(ver.major, MIN_GIT_VERSION[0] - 1)
44 self.assertGreaterEqual(ver.micro, 0)
45 self.assertGreaterEqual(ver.major, 0)
46
47 self.assertGreaterEqual(ver, MIN_GIT_VERSION)
48 self.assertLess(ver, (9999, 9999, 9999))
49
50 self.assertNotEqual('', ver.full)
Mike Frysinger369814b2019-07-10 17:10:07 -040051
52
Mike Frysinger71b0f312019-09-30 22:39:49 -040053class UserAgentUnitTest(unittest.TestCase):
54 """Tests the UserAgent function."""
55
56 def test_smoke_os(self):
57 """Make sure UA OS setting returns something useful."""
58 os_name = git_command.user_agent.os
59 # We can't dive too deep because of OS/tool differences, but we can check
60 # the general form.
61 m = re.match(r'^[^ ]+$', os_name)
62 self.assertIsNotNone(m)
Mike Frysinger369814b2019-07-10 17:10:07 -040063
Mike Frysinger71b0f312019-09-30 22:39:49 -040064 def test_smoke_repo(self):
65 """Make sure repo UA returns something useful."""
66 ua = git_command.user_agent.repo
Mike Frysinger369814b2019-07-10 17:10:07 -040067 # We can't dive too deep because of OS/tool differences, but we can check
68 # the general form.
69 m = re.match(r'^git-repo/[^ ]+ ([^ ]+) git/[^ ]+ Python/[0-9.]+', ua)
70 self.assertIsNotNone(m)
Mike Frysinger2f0951b2019-07-10 17:13:46 -040071
72 def test_smoke_git(self):
73 """Make sure git UA returns something useful."""
74 ua = git_command.user_agent.git
75 # We can't dive too deep because of OS/tool differences, but we can check
76 # the general form.
77 m = re.match(r'^git/[^ ]+ ([^ ]+) git-repo/[^ ]+', ua)
78 self.assertIsNotNone(m)