def test_get_usage_for_day(self): """ Append 2 3G sessions that occurred 21/11/07 and get usage for that day """ # 16:20 PM 21 Nov 2007 now = datetime.datetime(2007, 11, 21, 16, 20) args = [ True, Time.fromDatetime(now), # from now to now + 60m (60min) Time.fromDatetime(now + datetime.timedelta(minutes=45)), 11212100, 12321222 ] args2 = [ True, # from now + 80m to now + 120m (40min) Time.fromDatetime(now + datetime.timedelta(minutes=80)), Time.fromDatetime(now + datetime.timedelta(minutes=120)), 112128, 1232121 ] item1 = self.mana.add_usage_item(*args) item2 = self.mana.add_usage_item(*args2) resp = self.mana.get_usage_for_day(now.date()) self.failUnlessIn(item1, resp) self.failUnlessIn(item2, resp)
def test_append_item(self): """ Test that appending a couple of usage items works """ args = [ True, Time.fromDatetime(datetime.datetime.now()), Time.fromDatetime(datetime.datetime.now() + datetime.timedelta(minutes=59)), 112100, 121222 ] args2 = [ False, Time.fromDatetime(datetime.datetime.now() - datetime.timedelta(minutes=43)), Time.fromDatetime(datetime.datetime.now() + datetime.timedelta(minutes=50)), 11244443, 12243453 ] item1 = self.mana.add_usage_item(*args) item2 = self.mana.add_usage_item(*args2) self.assertEquals(self.mana.store.getItemByID(item1.storeID), item1) self.assertEquals(self.mana.store.getItemByID(item2.storeID), item2) item1.deleteFromStore() item2.deleteFromStore()
def add_usage_item(self, umts, start, end, bits_recv, bits_sent): self.add_usage_entry(umts, start, end, bits_recv, bits_sent) return UsageItem(store=self.store, umts=umts, start_time=Time.fromDatetime(start), end_time=Time.fromDatetime(end), bits_recv=bits_recv, bits_sent=bits_sent)
def test_get_usage_for_month(self): # 16:20 PM 21 Nov 2006 now = datetime.datetime(2006, 11, 21, 16, 20) args = [True, # from now + 180m to now + 210m (30min) Time.fromDatetime(now + datetime.timedelta(minutes=180)), Time.fromDatetime(now + datetime.timedelta(minutes=210)), 112128, 1232121] item3 = self.mana.add_usage_item(*args) resp = list(self.mana.get_usage_for_month(now.date())) self.failUnless(len(resp) == 1) self.failUnlessIn(item3, resp)
def add_message(self, sms, where=None): assert isinstance(sms, ShortMessage), "What are you trying to store?" return DBShortMessage(store=self.store, number=to_u(sms.get_number()), text=sms.get_text(), date=Time.fromDatetime(sms.datetime), where=where)
def test_get_usage_for_month(self): # 16:20 PM 21 Nov 2006 now = datetime.datetime(2006, 11, 21, 16, 20) args = [ True, # from now + 180m to now + 210m (30min) Time.fromDatetime(now + datetime.timedelta(minutes=180)), Time.fromDatetime(now + datetime.timedelta(minutes=210)), 112128, 1232121 ] item3 = self.mana.add_usage_item(*args) resp = list(self.mana.get_usage_for_month(now.date())) self.failUnless(len(resp) == 1) self.failUnlessIn(item3, resp)
def test_append_item(self): """ Test that appending a couple of usage items works """ args = [True, Time.fromDatetime(datetime.datetime.now()), Time.fromDatetime(datetime.datetime.now() + datetime.timedelta(minutes=59)), 112100, 121222] args2 = [False, Time.fromDatetime(datetime.datetime.now() - datetime.timedelta(minutes=43)), Time.fromDatetime(datetime.datetime.now() + datetime.timedelta(minutes=50)), 11244443, 12243453] item1 = self.mana.add_usage_item(*args) item2 = self.mana.add_usage_item(*args2) self.assertEquals(self.mana.store.getItemByID(item1.storeID), item1) self.assertEquals(self.mana.store.getItemByID(item2.storeID), item2) item1.deleteFromStore() item2.deleteFromStore()
def test_get_usage_for_day(self): """ Append 2 3G sessions that occurred 21/11/07 and get usage for that day """ # 16:20 PM 21 Nov 2007 now = datetime.datetime(2007, 11, 21, 16, 20) args = [True, Time.fromDatetime(now), # from now to now + 60m (60min) Time.fromDatetime(now + datetime.timedelta(minutes=45)), 11212100, 12321222] args2 = [True, # from now + 80m to now + 120m (40min) Time.fromDatetime(now + datetime.timedelta(minutes=80)), Time.fromDatetime(now + datetime.timedelta(minutes=120)), 112128, 1232121] item1 = self.mana.add_usage_item(*args) item2 = self.mana.add_usage_item(*args2) resp = self.mana.get_usage_for_day(now.date()) self.failUnlessIn(item1, resp) self.failUnlessIn(item2, resp)
def add_current_usage(self, restart=True): """ Adds the current usage statistics to the database """ from vmc.common.oal import osobj tzinfo = osobj.get_tzinfo() end = Time.fromDatetime(datetime.datetime.now(tzinfo)) umts = self.conn_mode in THREEG_SIGNALS def get_iface_stats_cb(usage): # append usage item usage_manager.add_usage_item(umts, self.start, end, *usage) if restart: # reset start time self.start = end # reset usage stats self.start_recv = usage[0] self.start_sent = usage[1] d = osobj.get_iface_stats() d.addCallback(get_iface_stats_cb)
def get_iface_stats_cb(stats): self.start_recv, self.start_sent = stats self.start = Time.fromDatetime(datetime.datetime.now(tzinfo)) self.session_start = self.start