Skip to content

Commit

Permalink
Added print vrsion management command
Browse files Browse the repository at this point in the history
  • Loading branch information
vint21h committed Feb 7, 2020
1 parent 609ce04 commit b839043
Show file tree
Hide file tree
Showing 9 changed files with 132 additions and 3 deletions.
7 changes: 6 additions & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,12 @@ Or you can use ``project_version`` templatetag which can be loaded from ``djvers
{{ VERSION }}
Also available simple management command ``print-version`` which prints project version to stdout. Just run:

.. code-block:: bash
django-admin print-version
Advanced features
-----------------
If you want to have REST-style view with your project version:
Expand Down Expand Up @@ -104,7 +110,6 @@ Or to use information from the project git repository as project version:
* Install ``django-project-version`` with additional dependencies: ``pip install django-project-version[git]``.
* Configure git related settings.


Licensing
---------
django-project-version uses the MIT license. Please check the MIT-LICENSE file for more details.
Expand Down
6 changes: 5 additions & 1 deletion djversion/locale/en/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django-project-version 0.8.1\n"
"Report-Msgid-Bugs-To: Alexei Andrushievich <vint21h@vint21h.pp.ua>\n"
"POT-Creation-Date: 2020-02-06 02:51+0200\n"
"POT-Creation-Date: 2020-02-07 16:19+0200\n"
"PO-Revision-Date: 2019-09-11 04:53+0300\n"
"Last-Translator: Alexei Andrushievich <vint21h@vint21h.pp.ua>\n"
"Language-Team: Alexei Andrushievich <vint21h@vint21h.pp.ua>\n"
Expand All @@ -20,6 +20,10 @@ msgstr ""
msgid "Django project version"
msgstr "Django project version"

#: djversion/management/commands/print-version.py:24
msgid "Print project version"
msgstr "Print project version"

#: djversion/rest.py:27
msgid "version"
msgstr "version"
Expand Down
6 changes: 5 additions & 1 deletion djversion/locale/uk/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: django-project-version 0.8.1\n"
"Report-Msgid-Bugs-To: Alexei Andrushievich <vint21h@vint21h.pp.ua>\n"
"POT-Creation-Date: 2020-02-06 02:51+0200\n"
"POT-Creation-Date: 2020-02-07 16:19+0200\n"
"PO-Revision-Date: 2019-09-11 04:53+0300\n"
"Last-Translator: Alexei Andrushievich <vint21h@vint21h.pp.ua>\n"
"Language-Team: Alexei Andrushievich <vint21h@vint21h.pp.ua>\n"
Expand All @@ -22,6 +22,10 @@ msgstr ""
msgid "Django project version"
msgstr "Django project version"

#: djversion/management/commands/print-version.py:24
msgid "Print project version"
msgstr "Надрукувати версію проекту"

#: djversion/rest.py:27
msgid "version"
msgstr "версія"
Expand Down
10 changes: 10 additions & 0 deletions djversion/management/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-

# django-project-version
# djversion/management/__init__.py


from typing import List # pylint: disable=W0611


__all__ = [] # type: List[str]
10 changes: 10 additions & 0 deletions djversion/management/commands/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-

# django-project-version
# djversion/management/commands/__init__.py


from typing import List # pylint: disable=W0611


__all__ = [] # type: List[str]
40 changes: 40 additions & 0 deletions djversion/management/commands/print-version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-

# django-project-version
# djversion/management/commands/print-version.py


import sys
from typing import Any, Dict, List # pylint: disable=W0611

from django.core.management.base import BaseCommand
from django.utils.translation import ugettext_lazy as _

from djversion.utils import get_version


__all__ = ["Command"] # type: List[str]


class Command(BaseCommand):
"""
Version management command.
"""

help = str(_("Print project version"))

def handle(self, *args: List[Any], **kwargs: Dict[str, Any]) -> None:
"""
Perform command.
:param args: additional args.
:type args: List[Any].
:param kwargs: additional args.
:type kwargs: Dict[str, Any].
:return: nothing.
:rtype: None.
"""

version = get_version()

sys.stdout.write(f"{version}\n")
10 changes: 10 additions & 0 deletions tests/management/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-

# django-project-version
# tests/management/__init__.py


from typing import List # pylint: disable=W0611


__all__ = [] # type: List[str]
10 changes: 10 additions & 0 deletions tests/management/commands/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-

# django-project-version
# tests/management/commands/__init__.py


from typing import List # pylint: disable=W0611


__all__ = [] # type: List[str]
36 changes: 36 additions & 0 deletions tests/management/commands/test_print-version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-

# django-project-version
# tests/management/commands/test_print-version.py
import contextlib
from io import StringIO
from typing import List # pylint: disable=W0611

from django.core.management import call_command
from django.test import TestCase


__all__ = ["PrintVersionManagementCommandTest"] # type: List[str]


class PrintVersionManagementCommandTest(TestCase):
"""
Print version management command tests.
"""

def test_handle(self) -> None:
"""
Must return version to stdout.
:return: nothing.
:rtype: None.
"""

out = StringIO()

with contextlib.redirect_stdout(out):
call_command("print-version")

result = out.getvalue().strip()

self.assertEqual(first=result, second="1.0.1 (Aug. 24, 1991)")

0 comments on commit b839043

Please sign in to comment.