Repository: crsmithdev/arrow
Pull request #641 (2019-08-17 23:16:19)

Move Macedonian locale to slavic base
Fixes conflicts of this stale PR: https://github.com/crsmithdev/arrow/pull/565.

codecov-io: # [Codecov](https://codecov.io/gh/crsmithdev/arrow/pull/641?src=pr&el=h1) Report
> Merging [#641](https://codecov.io/gh/crsmithdev/arrow/pull/641?src=pr&el=desc) into [master](https://codecov.io/gh/crsmithdev/arrow/commit/11f5751e6dd6b1854829ab325ff208d79c9bee2d?src=pr&el=desc) will **not change** coverage.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/crsmithdev/arrow/pull/641/graphs/tree.svg?width=650&token=4EkGnFsIGn&height=150&src=pr)](https://codecov.io/gh/crsmithdev/arrow/pull/641?src=pr&el=tree)

```diff
@@          Coverage Diff          @@
##           master   #641   +/-   ##
=====================================
  Coverage     100%   100%           
=====================================
  Files           8      8           
  Lines        1519   1519           
  Branches      226    226           
=====================================
  Hits         1519   1519
```


| [Impacted Files](https://codecov.io/gh/crsmithdev/arrow/pull/641?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [arrow/locales.py](https://codecov.io/gh/crsmithdev/arrow/pull/641/diff?src=pr&el=tree#diff-YXJyb3cvbG9jYWxlcy5weQ==) | `100% <100%> (ø)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/crsmithdev/arrow/pull/641?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/crsmithdev/arrow/pull/641?src=pr&el=footer). Last update [11f5751...3f63874](https://codecov.io/gh/crsmithdev/arrow/pull/641?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


Patch:
diff --git a/arrow/locales.py b/arrow/locales.py
index 81a7bad..4e540f0 100644
--- a/arrow/locales.py
+++ b/arrow/locales.py
@@ -1433,6 +1433,82 @@ class UkrainianLocale(SlavicBaseLocale):
     day_abbreviations = ["", "пн", "вт", "ср", "чт", "пт", "сб", "нд"]
 
 
+class MacedonianLocale(SlavicBaseLocale):
+    names = ["mk", "mk_mk"]
+
+    past = "пред {0}"
+    future = "за {0}"
+
+    timeframes = {
+        "now": "сега",
+        "seconds": "секунди",
+        "minute": "една минута",
+        "minutes": ["{0} минута", "{0} минути", "{0} минути"],
+        "hour": "еден саат",
+        "hours": ["{0} саат", "{0} саати", "{0} саати"],
+        "day": "еден ден",
+        "days": ["{0} ден", "{0} дена", "{0} дена"],
+        "month": "еден месец",
+        "months": ["{0} месец", "{0} месеци", "{0} месеци"],
+        "year": "една година",
+        "years": ["{0} година", "{0} години", "{0} години"],
+    }
+
+    meridians = {"am": "дп", "pm": "пп", "AM": "претпладне", "PM": "попладне"}
+
+    month_names = [
+        "",
+        "Јануари",
+        "Февруари",
+        "Март",
+        "Април",
+        "Мај",
+        "Јуни",
+        "Јули",
+        "Август",
+        "Септември",
+        "Октомври",
+        "Ноември",
+        "Декември",
+    ]
+    month_abbreviations = [
+        "",
+        "Јан.",
+        " Фев.",
+        " Мар.",
+        " Апр.",
+        " Мај",
+        " Јун.",
+        " Јул.",
+        " Авг.",
+        " Септ.",
+        " Окт.",
+        " Ноем.",
+        " Декем.",
+    ]
+
+    day_names = [
+        "",
+        "Понеделник",
+        " Вторник",
+        " Среда",
+        " Четврток",
+        " Петок",
+        " Сабота",
+        " Недела",
+    ]
+    day_abbreviations = [
+        "",
+        "Пон.",
+        " Вт.",
+        " Сре.",
+        " Чет.",
+        " Пет.",
+        " Саб.",
+        " Нед.",
+    ]
+
+
 class _DeutschLocaleCommonMixin(object):
 
     past = "vor {0}"
@@ -2843,82 +2919,6 @@ class FarsiLocale(Locale):
     day_abbreviations = ["", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
 
 
-class MacedonianLocale(Locale):
-    names = ["mk", "mk_mk"]
-
-    past = "пред {0}"
-    future = "за {0}"
-
-    timeframes = {
-        "now": "сега",
-        "seconds": "секунди",
-        "minute": "една минута",
-        "minutes": "{0} минути",
-        "hour": "еден саат",
-        "hours": "{0} саати",
-        "day": "еден ден",
-        "days": "{0} дена",
-        "month": "еден месец",
-        "months": "{0} месеци",
-        "year": "една година",
-        "years": "{0} години",
-    }
-
-    meridians = {"am": "дп", "pm": "пп", "AM": "претпладне", "PM": "попладне"}
-
-    month_names = [
-        "",
-        "Јануари",
-        "Февруари",
-        "Март",
-        "Април",
-        "Мај",
-        "Јуни",
-        "Јули",
-        "Август",
-        "Септември",
-        "Октомври",
-        "Ноември",
-        "Декември",
-    ]
-    month_abbreviations = [
-        "",
-        "Јан.",
-        " Фев.",
-        " Мар.",
-        " Апр.",
-        " Мај",
-        " Јун.",
-        " Јул.",
-        " Авг.",
-        " Септ.",
-        " Окт.",
-        " Ноем.",
-        " Декем.",
-    ]
-
-    day_names = [
-        "",
-        "Понеделник",
-        " Вторник",
-        " Среда",
-        " Четврток",
-        " Петок",
-        " Сабота",
-        " Недела",
-    ]
-    day_abbreviations = [
-        "",
-        "Пон.",
-        " Вт.",
-        " Сре.",
-        " Чет.",
-        " Пет.",
-        " Саб.",
-        " Нед.",
-    ]
-
-
 class HebrewLocale(Locale):
 
     names = ["he", "he_IL"]


Test patch:
diff --git a/tests/locales_tests.py b/tests/locales_tests.py
index c1a8912..0abf208 100644
--- a/tests/locales_tests.py
+++ b/tests/locales_tests.py
@@ -323,6 +323,35 @@ class BulgarianLocaleTests(Chai):
         self.assertEqual(locale._format_timeframe("minutes", 25), "25 минути")
 
 
+class MacedonianLocaleTests(Chai):
+    def test_plurals_mk(self):
+
+        locale = locales.MacedonianLocale()
+
+        # time
+        self.assertEqual(locale._format_relative("сега", "now", 0), "сега")
+
+        # Hours
+        self.assertEqual(locale._format_timeframe("hours", 0), "0 саати")
+        self.assertEqual(locale._format_timeframe("hours", 1), "1 саат")
+        self.assertEqual(locale._format_timeframe("hours", 2), "2 саати")
+        self.assertEqual(locale._format_timeframe("hours", 4), "4 саати")
+        self.assertEqual(locale._format_timeframe("hours", 5), "5 саати")
+        self.assertEqual(locale._format_timeframe("hours", 21), "21 саат")
+        self.assertEqual(locale._format_timeframe("hours", 22), "22 саати")
+        self.assertEqual(locale._format_timeframe("hours", 25), "25 саати")
+
+        # Minutes
+        self.assertEqual(locale._format_timeframe("minutes", 0), "0 минути")
+        self.assertEqual(locale._format_timeframe("minutes", 1), "1 минута")
+        self.assertEqual(locale._format_timeframe("minutes", 2), "2 минути")
+        self.assertEqual(locale._format_timeframe("minutes", 4), "4 минути")
+        self.assertEqual(locale._format_timeframe("minutes", 5), "5 минути")
+        self.assertEqual(locale._format_timeframe("minutes", 21), "21 минута")
+        self.assertEqual(locale._format_timeframe("minutes", 22), "22 минути")
+        self.assertEqual(locale._format_timeframe("minutes", 25), "25 минути")
+
+
 class HebrewLocaleTests(Chai):
     def test_couple_of_timeframe(self):
         locale = locales.HebrewLocale()