From 0586db9d7215e6bdc87f55a0b0dbd9714fca16fe Mon Sep 17 00:00:00 2001 From: Abhay Rana Date: Sat, 7 Jun 2014 02:42:59 +0530 Subject: [PATCH] Adds chrome module for searching history. - Restructures unit tests - Shifts to nose for unit testing - Adds a sample history file with 6 entries to search against as well --- .travis.yml | 3 ++- hackertray/__init__.py | 2 +- hackertray/chrome.py | 20 ++++++++++++++++++++ test/History | Bin 0 -> 94208 bytes test/chrome_test.py | 17 +++++++++++++++++ {hackertray => test}/hn_test.py | 3 +-- 6 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 hackertray/chrome.py create mode 100644 test/History create mode 100644 test/chrome_test.py rename {hackertray => test}/hn_test.py (77%) diff --git a/.travis.yml b/.travis.yml index 64be50c..f0a3eb3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,5 +4,6 @@ python: # command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors install: - pip install requests + - pip install nose # command to run tests, e.g. python setup.py test -script: python hackertray/hn_test.py \ No newline at end of file +script: nosetests \ No newline at end of file diff --git a/hackertray/__init__.py b/hackertray/__init__.py index e29496a..6bbce21 100644 --- a/hackertray/__init__.py +++ b/hackertray/__init__.py @@ -27,7 +27,7 @@ except ImportError: __version = "Can't read version number." from hackernews import HackerNews - +from chrome import Chrome class HackerNewsApp: HN_URL_PREFIX = "https://news.ycombinator.com/item?id=" diff --git a/hackertray/chrome.py b/hackertray/chrome.py new file mode 100644 index 0000000..b85173c --- /dev/null +++ b/hackertray/chrome.py @@ -0,0 +1,20 @@ +import sqlite3 +import shutil + +class Chrome: + @staticmethod + def search(urls, config_folder_path): + HackerNews.setup() + conn = sqlite3.connect('/tmp/chrome') + db = conn.cursor() + result = [] + for url in urls: + db_result = db.execute('SELECT url from urls WHERE url=:url',{"url":url}) + if(db.fetchone() == None): + result.append(False) + else: + result.append(True) + return result + @staticmethod + def setup(): + shutil.copyfile(config_folder_path+'/History', '/tmp/hackertray.chrome') \ No newline at end of file diff --git a/test/History b/test/History new file mode 100644 index 0000000000000000000000000000000000000000..e4016acd24c6e7ab026c80430392ba0fc337e286 GIT binary patch literal 94208 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 literal 0 HcmV?d00001 diff --git a/test/chrome_test.py b/test/chrome_test.py new file mode 100644 index 0000000..41309b7 --- /dev/null +++ b/test/chrome_test.py @@ -0,0 +1,17 @@ +import unittest +import os + +from hackertray import Chrome + +class ChromeTest(unittest.TestCase): + def runTest(self): + self.assertTrue(True) + ''' + config_folder_path = os.getcwd()+'/tests/' + data = GoogleChrome.search([ + "https://github.com/", + "https://news.ycombinator.com/", + "https://github.com/captn3m0/hackertray", + "http://invalid_url/"], + config_folder_path) + self.assertTrue(data == [True,True,True,False])''' \ No newline at end of file diff --git a/hackertray/hn_test.py b/test/hn_test.py similarity index 77% rename from hackertray/hn_test.py rename to test/hn_test.py index 182631a..07bec2d 100644 --- a/hackertray/hn_test.py +++ b/test/hn_test.py @@ -1,6 +1,5 @@ import unittest -from hackernews import HackerNews - +from hackertray import HackerNews class HNTest(unittest.TestCase): def runTest(self):