def setUp(self): self.redis = Redis(db=TEST_DB) existing_keys = self.redis.keys('*') self.assertFalse( existing_keys, 'Redis database "%s" must be empty to run these tests' % (TEST_DB, )) self.curator = Curator('curator', 'tests/sample_lua', self.redis)
def test_add_entry_for_unique_url(): curator = Curator(TEST_URL) dao_mock = Mock() dao_mock.entry_visited = Mock(return_value=None) curator.dao = dao_mock entry = {'link': TEST_URL} curator._Curator__add_entry_if_unique(entry) assert len(curator.entries_to_keep) == 1 assert curator.entries_to_keep[0] == entry
def test_add_entry_for_unique_url(): curator = Curator(TEST_URL) dao_mock = Mock() dao_mock.entry_visited = Mock(return_value=None) curator.dao = dao_mock entry = {'link' : TEST_URL} curator._Curator__add_entry_if_unique(entry) assert len(curator.entries_to_keep) == 1 assert curator.entries_to_keep[0] == entry
def setUp(self): self.redis = Redis(db=TEST_DB) existing_keys = self.redis.keys('*') self.assertFalse( existing_keys, 'Redis database "%s" must be empty to run these tests' % (TEST_DB,) ) self.curator = Curator('curator', 'tests/sample_lua', self.redis)
class ScriptLoadingTests(unittest2.TestCase): def setUp(self): self.redis = Redis(db=TEST_DB) existing_keys = self.redis.keys('*') self.assertFalse( existing_keys, 'Redis database "%s" must be empty to run these tests' % (TEST_DB,) ) self.curator = Curator('curator', 'tests/sample_lua', self.redis) def tearDown(self): self.redis.flushdb() self.redis.script_flush() def test_load_mexists(self): result = self.curator.util.exists.mexists( keys=['key0', 'key2', 'key3'], ) self.assertEqual(result, [0, 0, 0]) def test_util_mexists(self): self.redis.set('key1', 'value') result = self.curator.util.exists.mexists( keys=['key0', 'key1', 'key2'], ) self.assertEqual(result, [0, 1, 0]) def test_load_lua_include_partial(self): result = self.curator.util.include() self.assertEqual(result, 1) def test_load_mexists_from_cache(self): # calling it the first time should put it in the cache result = self.curator.util.exists.mexists(keys=['key0', 'key1']) with mock.patch.object(Template, 'render') as mock_render: mock_render.return_value = 'test' cached_result = self.curator.util.exists.mexists( keys=['key0', 'key1'], ) self.assertEqual(result, cached_result) # render should not have been called since we fetched from cache self.assertEqual(mock_render.call_count, 0) def test_access_nonexistant_script(self): with self.assertRaises(ScriptNotFound) as e: self.curator.invalid.path.to.script(keys=['key1']) self.assertEqual(e.exception.path, 'invalid/path/to/script') def test_load_script_base_dir(self): result = self.curator.base() self.assertEqual(result, 1)
def get_trends(self): trend_list = [] driver = webdriver.PhantomJS(executable_path="/usr/local/bin/phantomjs") try: driver.get("https://www.google.com/trends/hottrends") trends = driver.find_elements_by_css_selector("div.hottrends-single-trend-container") # response = requests.get("https://www.google.com/trends/hottrends") # soup = BeautifulSoup(content, 'html.parser') # trends = soup.find_all("div")#, "hottrends-single-trend-container") for trend in trends: search_term = trend.find_element_by_css_selector("span.hottrends-single-trend-title").text article_href = trend.find_element_by_tag_name("a").get_attribute("href") search_count = trend.find_element_by_css_selector("span.hottrends-single-trend-info-line-number").text search_count = int(search_count.replace("+", "").replace(",", "")) trend_list.append({"search_term": search_term, "search_count": search_count, "href": article_href}) curator = Curator() curator.process_trends(trend_list, ["`store`", "trends"], "rabot32") except: print("exception in get_trends() running webdriver?") finally: driver.close() return trend_list
class ScriptLoadingTests(unittest2.TestCase): def setUp(self): self.redis = Redis(db=TEST_DB) existing_keys = self.redis.keys('*') self.assertFalse( existing_keys, 'Redis database "%s" must be empty to run these tests' % (TEST_DB, )) self.curator = Curator('curator', 'tests/sample_lua', self.redis) def tearDown(self): self.redis.flushdb() self.redis.script_flush() def test_load_mexists(self): result = self.curator.util.exists.mexists( keys=['key0', 'key2', 'key3'], ) self.assertEqual(result, [0, 0, 0]) def test_util_mexists(self): self.redis.set('key1', 'value') result = self.curator.util.exists.mexists( keys=['key0', 'key1', 'key2'], ) self.assertEqual(result, [0, 1, 0]) def test_load_lua_include_partial(self): result = self.curator.util.include() self.assertEqual(result, 1) def test_load_mexists_from_cache(self): # calling it the first time should put it in the cache result = self.curator.util.exists.mexists(keys=['key0', 'key1']) with mock.patch.object(Template, 'render') as mock_render: mock_render.return_value = 'test' cached_result = self.curator.util.exists.mexists( keys=['key0', 'key1'], ) self.assertEqual(result, cached_result) # render should not have been called since we fetched from cache self.assertEqual(mock_render.call_count, 0) def test_access_nonexistant_script(self): with self.assertRaises(ScriptNotFound) as e: self.curator.invalid.path.to.script(keys=['key1']) self.assertEqual(e.exception.path, 'invalid/path/to/script') def test_load_script_base_dir(self): result = self.curator.base() self.assertEqual(result, 1)
#!/usr/bin/env python import os import sys from curator import Curator from curatorpublisher import CuratorPublisher def get_feed_url_from_args(): return sys.argv[1] # Command Line if len(sys.argv) < 2: sys.exit('usage: %s feed_name_or_url' % sys.argv[0]) url = get_feed_url_from_args() curator = Curator(url) curator.curate() content = curator.generate_template() publisher = CuratorPublisher(url) publisher.publish_feed_to_s3(content)
# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Stencila Hub is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with Stencila Hub. If not, see <http://www.gnu.org/licenses/>. import unittest from curator import Curator curator = Curator() curator.store_temporary() print curator.store class ComponentTests(unittest.TestCase): def test_init(self): curator.init('foo', 'stencil') meta = curator.meta('foo') self.assertEqual( meta['type'], 'stencil' ) self.assertEqual(
from code_reviewer import CodeReviewer from curator import Curator from human import Human from mentor import Mentor from student import Student from weather_man import WeatherMan student = Student("Тимофей") curator = Curator("Марина") mentor = Mentor("Ира") reviewer = CodeReviewer("Евгений") friend = Human("Виталя") weather_man = WeatherMan("Игорь") # weather_man2 = WeatherMan("Игорь") print(student.ask_question(curator, 'мне грустненько, что делать?')) print(student.ask_question(friend, 'Как твое имя?')) print(student.ask_question(mentor, 'мне грустненько, что делать?')) print(student.ask_question(reviewer, 'когда каникулы?')) print(student.ask_question(reviewer, 'что не так с моим проектом?')) print(student.ask_question(friend, 'как устроиться на работу питонистом?')) print(student.ask_question(mentor, 'как устроиться работать питонистом?')) print(student.ask_question(mentor, 'как с погодой?')) print(student.ask_question(weather_man, 'как с погодой?')) print(student.ask_question(friend, 'Сколько у меня наследников?'))
def test_entry_is_unique_when_dao_says_so(): curator = Curator(TEST_URL) curator.dao = Mock() curator.dao.entry_visited = Mock(return_value=None) assert curator._Curator__is_entry_unique(TEST_URL) == True
from curator import Curator from mock import Mock, patch TEST_URL = 'http://test.com/rss' curator = Curator(TEST_URL) def test_add_entry_for_unique_url(): curator = Curator(TEST_URL) dao_mock = Mock() dao_mock.entry_visited = Mock(return_value=None) curator.dao = dao_mock entry = {'link': TEST_URL} curator._Curator__add_entry_if_unique(entry) assert len(curator.entries_to_keep) == 1 assert curator.entries_to_keep[0] == entry def test_entry_is_unique_when_dao_says_so(): curator = Curator(TEST_URL) curator.dao = Mock() curator.dao.entry_visited = Mock(return_value=None) assert curator._Curator__is_entry_unique(TEST_URL) == True def test_cleanup_link_with_trailing_slash(): assert curator._Curator__cleanup_link_url(TEST_URL + '/') == TEST_URL def test_cleanup_link_with_no_trailing_slash(): assert curator._Curator__cleanup_link_url(TEST_URL) == TEST_URL