def test_token_plus_one(self): book_model = self.generate_book() book_model.title = u"テストとテストと召喚師" book_model.save() self.mecabm = MecabManager( bookmodel=book_model) self.mecabm._create_keyword() keyword = Keyword.objects.get(name=u'テスト') self.assertEqual( keyword.times, 2)
def test_token_to_keywordbook(self): book_model = self.generate_book() book_model.title = u"テストとテストと召喚師" book_model.save() self.mecabm = MecabManager( bookmodel=book_model) self.mecabm.create_keyword_to_book() keywordtobook = KeywordToBook.objects.get( keyword__name=u'テスト') self.assertEqual( keywordtobook.book.title, u'テストとテストと召喚師')
def generate_mecab_model(self, title=None): self.mecabm = MecabManager( bookmodel=self.generate_book(title=title))
def setUp(self): self.debug = { 'title': u"これはテストデータです"} self.mecabm = MecabManager( debug=self.debug)
class MecabTest(TestCase): def setUp(self): self.debug = { 'title': u"これはテストデータです"} self.mecabm = MecabManager( debug=self.debug) def test_mecab_initialize(self): u""" Mecabを使えるように設定します """ self.assertTrue(self.mecabm._node) def test_mecab_tokenize(self): u""" Mecabのnodeからトークンを生成します """ self.assertTrue( len(self.mecabm.tokens) > 0) self.assertEqual( self.mecabm.tokens[0].text, u'これ') def assertNoun(self, token, text, is_noun): self.assertEqual(token.text, text) if is_noun: self.assertTrue(token.is_noun()) else: self.assertFalse(token.is_noun()) def test_mecab_noun_check(self): u""" 名詞かどうかチェックします """ tokens = self.mecabm.tokens self.assertNoun(tokens[0], u'これ', False) self.assertNoun(tokens[1], u'は', False) self.assertNoun(tokens[2], u'テスト', True) def generate_book(self, title=None): if title is None: title = u'これはテストです' return Book.objects.create( title=title, author=u'これは著者です', price=1000, url='http://', image='http://', detail=u'これはテスト詳細です', users=300, is_mecab=False, via=u'はてなブックマーク') def generate_mecab_model(self, title=None): self.mecabm = MecabManager( bookmodel=self.generate_book(title=title)) def test_mecab_book_tokenlize(self): self.generate_mecab_model() tokens = self.mecabm.tokens self.assertNoun(tokens[0], u'これ', False) self.assertNoun(tokens[2], u'テスト', True) def test_mecab_check_valid_token(self): self.generate_mecab_model( title='これはAの2000年前のテストです') tokens = self.mecabm.tokens tokens = self.mecabm.tokens print "--- TOKEN LIST ---" for name in [token.text for token in tokens]: print name print "------------------" self.assertNoun(tokens[0], u'これ', False) self.assertNoun(tokens[2], u'A', False) self.assertNoun(tokens[4], u'2000', False) def test_token_to_model(self): self.generate_mecab_model() self.mecabm.model = self.generate_book() self.mecabm._create_keyword() keyword = Keyword.objects.get( name=u'テスト') self.assertEqual(keyword.name, u'テスト') is_not_noun = False try: keyword = Keyword.objects.get( name=u'これ') except Keyword.DoesNotExist: is_not_noun = True self.assertTrue(is_not_noun) def test_token_plus_one(self): book_model = self.generate_book() book_model.title = u"テストとテストと召喚師" book_model.save() self.mecabm = MecabManager( bookmodel=book_model) self.mecabm._create_keyword() keyword = Keyword.objects.get(name=u'テスト') self.assertEqual( keyword.times, 2) def test_token_to_book(self): self.generate_mecab_model() self.mecabm.create_keyword_to_book() keywordtobook = KeywordToBook.objects.get( keyword__name=u'テスト') self.assertEqual( keywordtobook.book.title, u'これはテストです') def test_token_to_keywordbook(self): book_model = self.generate_book() book_model.title = u"テストとテストと召喚師" book_model.save() self.mecabm = MecabManager( bookmodel=book_model) self.mecabm.create_keyword_to_book() keywordtobook = KeywordToBook.objects.get( keyword__name=u'テスト') self.assertEqual( keywordtobook.book.title, u'テストとテストと召喚師') def test_token_is_mecab_true(self): self.generate_mecab_model() self.mecabm.create_keyword_to_book() keywordtobook = KeywordToBook.objects.get( keyword__name=u'テスト') self.assertTrue( keywordtobook.book.is_mecab)