Coveralls logob
Coveralls logo
  • Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

sergei-maertens / django-systemjs / 131

29 Aug 2016 - 13:38 coverage: 96.739% (+1.3%) from 95.443%
131

Pull #18

travis-ci

9181eb84f9c35729a3bad740fb7f9d93?size=18&default=identiconweb-flow
Catch error output from jspm api & raise error
Pull Request #18: Feature/more efficient bundling

291 of 297 new or added lines in 9 files covered. (97.98%)

534 of 552 relevant lines covered (96.74%)

11.56 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

67.57
/systemjs/__init__.py
1
"""
2
Version code taken from django.utils.version.
3
"""
4

5
import datetime
12×
6
import os
12×
7
import subprocess
12×
8

9

10
VERSION = (1, 4, 0, 'beta', 4)
12×
11

12

13
default_app_config = 'systemjs.apps.SystemJSConfig'
12×
14

15

16
def get_version(version=None):
12×
17
    "Returns a PEP 386-compliant version number from VERSION."
18
    version = get_complete_version(version)
12×
19

20
    # Now build the two parts of the version number:
21
    # main = X.Y[.Z]
22
    # sub = .devN - for pre-alpha releases
23
    #     | {a|b|c}N - for alpha, beta and rc releases
24

25
    main = get_main_version(version)
12×
26

27
    sub = ''
12×
28
    if version[3] == 'alpha' and version[4] == 0:
12×
29
        git_changeset = get_git_changeset()
!
30
        if git_changeset:
!
31
            sub = '.dev%s' % git_changeset
!
32

33
    elif version[3] != 'final':
12×
34
        mapping = {'alpha': 'a', 'beta': 'b', 'rc': 'c'}
12×
35
        sub = mapping[version[3]] + str(version[4])
12×
36

37
    return str(main + sub)
12×
38

39

40
def get_main_version(version=None):
12×
41
    "Returns main version (X.Y[.Z]) from VERSION."
42
    version = get_complete_version(version)
12×
43
    parts = 2 if version[2] == 0 else 3
12×
44
    return '.'.join(str(x) for x in version[:parts])
12×
45

46

47
def get_complete_version(version=None):
12×
48
    """Returns a tuple of the django-systemjs version. If version argument is non-empty,
49
    then checks for correctness of the tuple provided.
50
    """
51
    if version is None:
12×
NEW
52
        version = VERSION
!
53
    else:
54
        assert len(version) == 5
12×
55
        assert version[3] in ('alpha', 'beta', 'rc', 'final')
12×
56

57
    return version
12×
58

59

60
def get_git_changeset():
12×
61
    """Returns a numeric identifier of the latest git changeset.
62

63
    The result is the UTC timestamp of the changeset in YYYYMMDDHHMMSS format.
64
    This value isn't guaranteed to be unique, but collisions are very unlikely,
65
    so it's sufficient for generating the development version numbers.
66
    """
67
    repo_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
!
68
    git_log = subprocess.Popen(
!
69
        'git log --pretty=format:%ct --quiet -1 HEAD',
70
        stdout=subprocess.PIPE, stderr=subprocess.PIPE,
71
        shell=True, cwd=repo_dir, universal_newlines=True
72
    )
73
    timestamp = git_log.communicate()[0]
!
74
    try:
!
75
        timestamp = datetime.datetime.utcfromtimestamp(int(timestamp))
!
76
    except ValueError:
!
77
        return None
!
78
    return timestamp.strftime('%Y%m%d%H%M%S')
!
79

80

81
__version__ = get_version(VERSION)
12×
Troubleshooting · Open an Issue · Sales · Support · ENTERPRISE · CAREERS · STATUS
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2023 Coveralls, Inc