From 1723d0d52c1c43fcca3b10f38af158a2167f47a5 Mon Sep 17 00:00:00 2001 From: Shohei Ueda <30958501+peaceiris@users.noreply.github.com> Date: Mon, 27 Jul 2020 19:03:48 +0900 Subject: [PATCH] test: Add main_test.py (#23) --- .github/workflows/ci.yml | 1 + .gitignore | 1 + Makefile | 9 +++++++++ main.py | 38 ++++++++++++++++++++------------------ main_test.py | 22 ++++++++++++++++++++++ 5 files changed, 53 insertions(+), 18 deletions(-) create mode 100644 main_test.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3d3902d..b4d1f19 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,3 +19,4 @@ jobs: - uses: actions/checkout@v2.3.1 - run: docker-compose build - run: make build + - run: make test diff --git a/.gitignore b/.gitignore index 3094469..f5c343b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .DS_Store build +__pycache__ diff --git a/Makefile b/Makefile index 7cad0d6..7257ef3 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,12 @@ .PHONY: build build: docker-compose run --rm -T dev python main.py + +.PHONY: test +test: + docker-compose run --rm -T dev python main_test.py + +.PHONY: all +all: + $(MAKE) test + $(MAKE) build diff --git a/main.py b/main.py index ef6cb1f..8c0f25a 100644 --- a/main.py +++ b/main.py @@ -7,6 +7,22 @@ EMOJI_JSON_URL = 'https://raw.githubusercontent.com/yagays/emoji-ja/20190726/data/emoji_ja.json' EMOJI_DICT_PATH = 'tsv/emoji.tsv' kakasi = kakasi() +kakasi.setMode("J","H") +conv_j2h = kakasi.getConverter() +kakasi.setMode("K","H") +conv_k2h = kakasi.getConverter() + + +def hiraganafy(keyword): + k = keyword.upper() + k = conv_j2h.do(k) + k = conv_k2h.do(k) + return k + + +def add_word_to_dict(emoji, keyword, emoji_dict): + word = f':{keyword}\t{emoji}\t記号\t' + emoji_dict.append(word) class EmojiDict(): @@ -31,28 +47,14 @@ def create_emoji_dict(self) -> None: for k in self.emoji_json[emoji]['keywords']: if k.isalpha() is False: continue - k = k.upper() - kakasi.setMode("J","H") - conv = kakasi.getConverter() - k = conv.do(k) - kakasi.setMode("K","H") - conv = kakasi.getConverter() - k = conv.do(k) - w = f':{k}\t{emoji}\t記号\t' - self.emoji_dict.append(w) + k = hiraganafy(k) + add_word_to_dict(emoji, k, self.emoji_dict) k = self.emoji_json[emoji]['short_name'] if k.isalpha() is False: continue - k = k.upper() - kakasi.setMode("J","H") - conv = kakasi.getConverter() - k = conv.do(k) - kakasi.setMode("K","H") - conv = kakasi.getConverter() - k = conv.do(k) - w = f':{k}\t{emoji}\t記号\t' - self.emoji_dict.append(w) + k = hiraganafy(k) + add_word_to_dict(emoji, k, self.emoji_dict) self.emoji_dict.sort() self.emoji_dict = '\n'.join(self.emoji_dict) diff --git a/main_test.py b/main_test.py new file mode 100644 index 0000000..1231c2c --- /dev/null +++ b/main_test.py @@ -0,0 +1,22 @@ +import unittest +import main + +class TestStringMethods(unittest.TestCase): + + def test_hiraganafy(self): + katakana = 'カタカナ' + self.assertEqual(main.hiraganafy(katakana), 'かたかな') + kanji = '漢字' + self.assertEqual(main.hiraganafy(kanji), 'かんじ') + hiragana = 'ひらがな' + self.assertEqual(main.hiraganafy(hiragana), 'ひらがな') + + def test_add_word_to_dict(self): + emoji_dict = [] + main.add_word_to_dict('🇯🇵', 'にっぽん', emoji_dict) + expected_row = f':にっぽん\t🇯🇵\t記号\t' + self.assertEqual(expected_row, emoji_dict[0]) + + +if __name__ == '__main__': + unittest.main(verbosity=2)