示例#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