class ArticleRankerTest(unittest.TestCase): def setUp(self): fill_database() config_ = load_config(file_path = "/media/sdc1/Aptana Studio 3 Workspace/configs/config.yaml", logger = logger) self.feature_extractor = EsaFeatureExtractor(prefix = config_['prefix']) self.ranker = ArticleRanker(extractor = self.feature_extractor) self.article_as_dict = {'news_vendor': 'TechCrunch', 'author': "MG Siegler", 'link': "http://www.techcrunch.com", 'headline': "Again Apple", 'clean_content': "Fooobaaar!", 'content': "<p>Fooobaaar!</p>", 'features': {'version': '1.0', 'data': [(1, 0.5), (3, 0.6) ] } } def tearDown(self): clear_database() def test_get_vendor_false(self): vendor = self.ranker.get_vendor({'news_vendor': 'not in db'}) self.assertEqual(vendor, None) def test_get_vendor(self): vendor = self.ranker.get_vendor(self.article_as_dict) self.assertEqual(vendor.config, 'vendor config') def test_save_article_false(self): vendor = self.ranker.get_vendor(self.article_as_dict) stored_article = self.ranker.save_article(vendor, {'headline': "Everything else is missing."}) self.assertEqual(stored_article, None) def test_save_article(self): vendor = self.ranker.get_vendor(self.article_as_dict) stored_article = self.ranker.save_article(vendor, self.article_as_dict) self.assertEqual(stored_article.author, 'MG Siegler') def test_save_rating(self): vendor = self.ranker.get_vendor(self.article_as_dict) stored_article = self.ranker.save_article(vendor, self.article_as_dict) user = User.objects(name = "Karsten Jeschkies").first() self.ranker.save_rating(user=user, article = stored_article, rating = 1.0) user.reload() ranked_articles = RankedArticle.objects(user_id = user.id) self.assertEqual(3, ranked_articles.count()) self.assertEqual(1.0, ranked_articles[0].rating) def test_rank_article(self): pass #some error in genism. probably because some features are not quite right self.ranker.rank_article(self.article_as_dict)