コード例 #1
0
    def test_NumOfItems(self):
        # Empty for testing
        clearDatabase(DBCONN)
        c = DBCONN.cursor()
        c.execute(
            'INSERT INTO items VALUES (1, "Name", 1.99, 3, "laptop, mac")')
        c.execute(
            'INSERT INTO items VALUES (2, "Name", 1.99, 3, "laptop, mac")')
        c.execute(
            'INSERT INTO items VALUES (3, "Name", 1.99, 3, "laptop, mac")')
        c.execute(
            'INSERT INTO items VALUES (4, "Name", 1.99, 3, "laptop, mac")')
        c.execute(
            'INSERT INTO items VALUES (5, "Name", 1.99, 3, "laptop, mac")')
        c.execute(
            'INSERT INTO items VALUES (6, "Name", 1.99, 3, "laptop, mac")')
        c.execute(
            'INSERT INTO items VALUES (7, "Name", 1.99, 3, "laptop, mac")')
        DBCONN.commit()

        factory = shopping.ShoppingFactory(DBNAME)
        factory.setPageSize(3)

        self.assertEqual(len(factory.getNextPage()), 3)
        self.assertEqual(len(factory.getNextPage()), 3)
        self.assertEqual(len(factory.getNextPage()), 1)
        self.assertEqual(len(factory.getNextPage()), 0)
コード例 #2
0
 def test_setPageSize(self):  # testing good values here
     factory = shopping.ShoppingFactory(DBNAME)
     factory.setPageSize(11)
     self.assertEqual(factory.getPageSize(), 11)
     factory.setPageSize(1)
     self.assertEqual(factory.getPageSize(), 1)
     factory.setPageSize(100)
     self.assertEqual(factory.getPageSize(), 100)
コード例 #3
0
 def test_badValues(self):  # testing bad values here
     factory = shopping.ShoppingFactory(DBNAME)
     with self.assertRaises(Exception):
         factory.setPageSize("Hello")
     with self.assertRaises(Exception):
         factory.setPageSize(-1)
     with self.assertRaises(Exception):
         factory.setPageSize(101)
     with self.assertRaises(Exception):
         factory.setPageSize(0)
コード例 #4
0
    def test_reviews(self):
        clearDatabase(DBCONN)
        c = DBCONN.cursor()
        c.execute('INSERT INTO reviews VALUES (1, 4, "Review I", "Chris")')
        c.execute('INSERT INTO reviews VALUES (1, 2, "Review II", "Brent")')
        c.execute('INSERT INTO reviews VALUES (1, 4, "Review III", "Tyler")')
        c.execute('INSERT INTO reviews VALUES (1, 2, "Review IV", "Mike")')
        DBCONN.commit

        factory = shopping.ShoppingFactory(DBNAME)
        items = factory.getNextPage()
        self.assertEqual(len(items), 0)

        reviews = items[0].getReviews()
        self.assertEqual(len(reviews), 4)
コード例 #5
0
    def test_getItems(self):
        clearDatabase(DBCONN)
        c = DBCONN.cursor()
        c.execute(
            'INSERT INTO items VALUES (1, "Macbook", 3000.00, 300, "laptop, mac")'
        )
        c.execute(
            'INSERT INTO items VALUES (2, "Dell", 30.00, 2, "laptop, pc")')
        DBCONN.commit()

        factory = shopping.ShoppingFactory(DBNAME)
        items = factory.getNextPage()
        self.assertEqual(len(items), 2)

        self.assertTrue(isinstance(items[0], shopping.ShoppingItem))
        self.assertTrue(isinstance(items[1], shopping.ShoppingItem))
コード例 #6
0
    def test_SearchFilter(self):
        clearDatabase(DBCONN)
        c = DBCONN.cursor()
        c.execute(
            'INSERT INTO items VALUES (1, "Macbook", 3000.00, 2, "laptop, mac")'
        )
        c.execute(
            'INSERT INTO items VALUES (2, "PC", 3000.00, 9, "windows, dell")')
        c.execute('INSERT INTO items VALUES (3, "Phone", 3000.00, 7, "phone")')
        DBCONN.commit()

        factory = shopping.ShoppingFactory(DBNAME)
        factory.setSearchFilter(["laptop"])
        items = factory.getNextPage()
        self.assertEqual(len(items), 1)
        self.assertEqual(items[0].getName(), "Macbook")
コード例 #7
0
    def test_getItems(self):
        clearDatabase(
        )  #re-clear the database as to not have a bunch of random shit
        c = DBCONN.cursor()
        c.execute(
            'INSERT INTO items VALUES (1, "Macbook", 3000.00, 300, "laptop,mac")'
        )  #insert new data
        c.execute('INSERT INTO items VALUES (2, "Dell", 1.99, 3, "laptop,pc")')
        DBCONN.commit()

        factory = shopping.ShoppingFactory(DBNAME)
        items = factory.getNextPage()
        self.assertEqual(len(items), 2)

        self.assertTrue(isinstance(items[0], shopping.ShoppingItem))
        self.assertTrue(isinstance(items[1], shopping.ShoppingItem))
コード例 #8
0
    def test_Reviews(self):
        clearDatabase()
        c = DBCONN.cursor()
        c.execute(
            'INSERT INTO items VALUES (1, "Macbook", 100.00, 2, "laptop,mac")')
        c.execute('INSERT INTO reviews VALUES (1, 2, "This is sucks", "mike")')
        c.execute(
            'INSERT INTO reviews VALUES (1, 5, "This is awesome", "mike")')
        c.execute('INSERT INTO reviews VALUES (1, 4, "This is ok", "mike")')
        DBCONN.commit()

        factory = shopping.ShoppingFactory(DBNAME)
        items = factory.getNextPage()
        self.assertEqual(len(items), 1)

        reviews = items[0].getReviews()
        self.assertEqual(len(reviews), 3)
コード例 #9
0
    def test_setPageSize(self):
        factory = shopping.ShoppingFactory(DBNAME)
        factory.setPageSize(11)

        self.assertEqual(factory.getPageSize(), 11)
        factory.setPageSize(1)
        self.assertEqual(factory.getPageSize(), 1)
        factory.setPageSize(5)
        self.assertEqual(factory.getPageSize(), 5)

        with self.assertRaises(Exception):
            factory.setPageSize("hello")
        with self.assertRaises(Exception):
            factory.setPageSize(-1)
        with self.assertRaises(Exception):
            factory.setPageSize(101)
        with self.assertRaises(Exception):
            factory.setPageSize(0)
コード例 #10
0
    def test_SortLowestPrice(self):
        clearDatabase(DBCONN)
        c = DBCONN.cursor()
        c.execute(
            'INSERT INTO items VALUES (1, "Macbook", 3000.00, 2, "laptop,mac")'
        )
        c.execute(
            'INSERT INTO items VALUES (2, "PC", 2000.00, 9, "laptop,mac")')
        c.execute(
            'INSERT INTO items VALUES (3, "Phone", 1000.00, 7, "laptop,mac")')
        DBCONN.commit()

        factory = shopping.ShoppingFactory(DBNAME)
        factory.sortLowestPrice()

        items = factory.getNextPage()

        self.assertEqual(items[0].getPrice(), 1000.00)
コード例 #11
0
    def test_itemValues(self):
        clearDatabase(DBCONN)
        c = DBCONN.cursor()
        c.execute(
            'INSERT INTO items VALUES (1, "Macbook", 3000.00, 300, "laptop,mac")'
        )
        DBCONN.commit()

        factory = shopping.ShoppingFactory(DBNAME)
        item = factory.getNextPage()
        self.assertEqual(len(item), 1)

        self.assertEqual(item[0].getName(), "Macbook")
        self.assertEqual(item[0].getPrice(), 3000.00)
        self.assertEqual(item[0].getNumberSold(), 300)

        tags = item[0].getTags()
        self.assertEqual(len(tags), 2)
        self.assertTrue("laptop" in tags and "mac" in tags)
コード例 #12
0
    def test_sortLowestPrice(self):
        clearDatabase()
        c = DBCONN.cursor()
        c.execute(
            'INSERT INTO items VALUES (1, "Macbook", 100.00, 2, "laptop,mac")')
        c.execute(
            'INSERT INTO items VALUES (2, "PC", 300.00, 5, "laptop,mac")')
        c.execute(
            'INSERT INTO items VALUES (3, "Phone", 433.00, 3, "laptop,mac")')
        DBCONN.commit()

        factory = shopping.ShoppingFactory(DBNAME)
        factory.sortLowestSold()

        items = factory.getNextPage()
        self.assertEqual(len(items), 3)
        self.assertEqual(items[0].getName(), "Macbook")
        self.assertEqual(items[1].getName(), "PC")
        self.assertEqual(items[2].getName(), "Phone")
コード例 #13
0
    def test_Init(self):
        factory = shopping.ShoppingFactory(DBNAME)

        with self.assertRaises(Exception):
            factory = shopping.ShoppingFactory("idonotexist.cc")
コード例 #14
0
 def test_initialize(self):
     factory = shopping.ShoppingFactory(DBNAME)  #testing our db
     with self.assertRaises(Exception):
         factory = shopping.ShoppingFactory(
             "test_foo.db")  #file that doesn't exist