Ejemplo n.º 1
0
    def get_requests(self):
        """Act as an iterable of requests to add create.

        It is safe to assume this method will be called from within an
        request context.
        """
        d1 = Division('Division 1')
        d2 = Division('Division 2')
        user1 = self.normal_user
        user2 = self.admin_user
        # user1 can submit to division 1, user2 to division 2
        # user2 can review and pay out both divisions
        Permission(d1, PermissionType.submit, user1)
        Permission(d2, PermissionType.submit, user2)
        for permission in PermissionType.elevated:
            for division in (d1, d2):
                Permission(division, permission, user2)
        Pilot(user1, 'Generic Pilot', self.sample_request_data['pilot_id'])
        for division, user in ((d1, user1), (d2, user2)):
            # 2 evaluating, 1 incomplete, 2 approved, 1 rejected,
            # and 1 paid.
            for status in (ActionType.evaluating, ActionType.evaluating,
                           ActionType.incomplete, ActionType.approved,
                           ActionType.approved, ActionType.rejected,
                           ActionType.paid):
                request_details = "User: {}\nDivision: {}\nStatus: {}"\
                        .format(user, division, status)
                yield Request(user,
                              request_details,
                              division,
                              self.sample_request_data.items(),
                              killmail_url='http://paxswill.com',
                              status=status)
Ejemplo n.º 2
0
 def setUp(self):
     super(TestModels, self).setUp()
     with self.app.test_request_context():
         div = Division('Testing Division')
         mock_killmail = dict(
                 id=12842852,
                 ship_type='Erebus',
                 corporation='Ever Flow',
                 alliance='Northern Coalition.',
                 killmail_url=('http://eve-kill.net/?a=kill_detail'
                     '&kll_id=12842852'),
                 base_payout=Decimal(73957900000),
                 kill_timestamp=dt.datetime(2012, 3, 25, 0, 44, 0,
                     tzinfo=utc),
                 system='92D-OI',
                 constellation='XHYS-O',
                 region='Venal',
                 pilot_id=133741,
         )
         Pilot(self.normal_user, 'eLusi0n', 133741)
         Request(self.normal_user, 'Original details', div,
                 mock_killmail.items())
         Permission(div, PermissionType.review, self.admin_user)
         Permission(div, PermissionType.pay, self.admin_user)
         db.session.commit()
Ejemplo n.º 3
0
 def setUp(self):
     super(TestRequest, self).setUp()
     with self.app.test_request_context():
         d1 = Division('Division One')
         d2 = Division('Division Two')
         db.session.add(d1)
         db.session.add(d2)
         # Yup, the Gyrobus killmail
         mock_killmail = dict(
                 id=12842852,
                 ship_type='Erebus',
                 corporation='Ever Flow',
                 alliance='Northern Coalition.',
                 killmail_url=('http://eve-kill.net/?a=kill_detail'
                     '&kll_id=12842852'),
                 base_payout=73957900000,
                 kill_timestamp=dt.datetime(2012, 3, 25, 0, 44, 0,
                     tzinfo=utc),
                 system='92D-OI',
                 constellation='XHYS-O',
                 region='Venal',
                 pilot_id=133741,
         )
         Pilot(self.normal_user, 'eLusi0n', 133741)
         Request(self.normal_user, 'Original details', d1,
                 mock_killmail.items())
         db.session.commit()
     self.request_path = '/request/12842852/'
Ejemplo n.º 4
0
 def setUp(self):
     super(TestRequestCount, self).setUp()
     with self.app.test_request_context():
         d1 = Division('Division 1')
         d2 = Division('Division 2')
         d3 = Division('Division 3')
         user = self.normal_user
         pilot = Pilot(user, 'A Pilot', 1)
         Permission(d1, PermissionType.submit, user)
         Permission(d2, PermissionType.review, user)
         Permission(d3, PermissionType.pay, user)
         db.session.commit()
         # Populate requests
         request_data = {
             'ship_type': 'Revenant',
             'corporation': 'Center of Applied Studies',
             'kill_timestamp': dt.datetime.utcnow(),
             'system': 'Jita',
             'constellation': 'Kimotoro',
             'region': 'The Forge',
             'pilot_id': 1,
         }
         for division in (d1, d2, d3):
             requests = (
                 # Division 1
                 Request(user,
                         'Foo',
                         division,
                         request_data.items(),
                         killmail_url='http://google.com',
                         status=ActionType.evaluating),
                 Request(user,
                         'Foo',
                         division,
                         request_data.items(),
                         killmail_url='http://google.com',
                         status=ActionType.incomplete),
                 Request(user,
                         'Foo',
                         division,
                         request_data.items(),
                         killmail_url='http://google.com',
                         status=ActionType.approved),
                 Request(user,
                         'Foo',
                         division,
                         request_data.items(),
                         killmail_url='http://google.com',
                         status=ActionType.paid),
                 Request(user,
                         'Foo',
                         division,
                         request_data.items(),
                         killmail_url='http://google.com',
                         status=ActionType.rejected),
             )
             db.session.add_all(requests)
         db.session.commit()
Ejemplo n.º 5
0
 def setUp(self):
     super(TestRequestList, self).setUp()
     with self.app.test_request_context():
         d1 = Division('Division 1')
         d2 = Division('Division 2')
         user1 = self.normal_user
         user2 = self.admin_user
         # user1 can submit to division 1, user2 to division 2
         # user2 can review and pay out both divisions
         Permission(d1, PermissionType.submit, user1)
         Permission(d2, PermissionType.submit, user2)
         for permission in PermissionType.elevated:
             for division in (d1, d2):
                 Permission(division, permission, user2)
         Pilot(user1, 'Generic Pilot', 1)
         request_data = {
             'ship_type': 'Revenant',
             'corporation': 'Center of Applied Studies',
             'kill_timestamp': dt.datetime.utcnow(),
             'system': 'Jita',
             'constellation': 'Kimotoro',
             'region': 'The Forge',
             'pilot_id': 1,
         }
         for division, user in ((d1, user1), (d2, user2)):
             # 2 evaluating, 1 incomplete, 2 approved, 1 rejected,
             # and 1 paid.
             Request(user, 'First', division, request_data.items(),
                     killmail_url='http://paxswill.com',
                     status=ActionType.evaluating)
             Request(user, 'Second', division, request_data.items(),
                     killmail_url='http://paxswill.com',
                     status=ActionType.evaluating)
             Request(user, 'Third', division, request_data.items(),
                     killmail_url='http://paxswill.com',
                     status=ActionType.incomplete)
             Request(user, 'Fourth', division, request_data.items(),
                     killmail_url='http://paxswill.com',
                     status=ActionType.approved)
             Request(user, 'Fifth', division, request_data.items(),
                     killmail_url='http://paxswill.com',
                     status=ActionType.approved)
             Request(user, 'Sixth', division, request_data.items(),
                     killmail_url='http://paxswill.com',
                     status=ActionType.rejected)
             Request(user, 'Sixth', division, request_data.items(),
                     killmail_url='http://paxswill.com',
                     status=ActionType.paid)
         db.session.commit()
Ejemplo n.º 6
0
 def setUp(self):
     super(TestFilterBase, self).setUp()
     with self.app.test_request_context():
         # Divisions
         divisions = {
             self.DIV_1: Division(self.DIV_1),
             self.DIV_2: Division(self.DIV_2),
             self.DIV_3: Division(self.DIV_3),
         }
         # Give all permissions in all divisions to admin_user
         for division in divisions.values():
             for permission in PermissionType.all:
                 Permission(division, permission, self.admin_user)
         # Pilots
         pilots = {
             'Paxswill': 570140137,
             'Sapporo Jones': 772506501,
             'DurrHurrDurr': 1456384556,
             'Gevlon Goblin': 91662677,
             'Zora Aran': 534674271,
         }
         for name, id in pilots.items():
             if id % 2 == 0:
                 user = self.normal_user
             else:
                 user = self.admin_user
             db.session.add(Pilot(user, name, id))
         # Lossmails/requests
         for request_data in self.killmails:
             # Copy dict before we pop stuff out of it
             data_copy = dict(request_data)
             # Distribute requests between users
             if request_data['id'] % 2 == 0:
                 user = self.admin_user
             else:
                 user = self.normal_user
             details = data_copy.pop('details')
             division = divisions[data_copy.pop('division')]
             status = data_copy.pop('status')
             data_copy['pilot_id'] = pilots[data_copy.pop('pilot')]
             request = Request(user, details, division, data_copy.items())
             # Set status after the base payout has been set
             request.status = status
         db.session.commit()
Ejemplo n.º 7
0
 def test_submit_non_personal_killmail(self):
     with self.app.test_request_context():
         user = self.normal_user
         pilot = Pilot(user, 'The Mittani', 443630591)
         db.session.add(pilot)
         db.session.commit()
         division = Division.query.filter_by(name='Division 1').one()
     client = self.login()
     resp = client.post('/request/add/', follow_redirects=True, data=dict(
                 url='https://zkillboard.com/kill/37637533/',
                 details='Foo',
                 division=division.id,
                 submit=True))
     self.assertEqual(resp.status_code, 200)
     self.assertIn('You can only submit killmails of characters you',
             resp.get_data(as_text=True))
     with self.app.test_request_context():
         request = Request.query.get(37637533)
         self.assertIsNone(request)
Ejemplo n.º 8
0
 def test_submit_killmail(self):
     with self.app.test_request_context():
         user = self.normal_user
         pilot = Pilot(user, 'Paxswill', 570140137)
         db.session.add(pilot)
         db.session.commit()
         division = Division.query.filter_by(name='Division 1').one()
     client = self.login()
     with HTTMock(*all_mocks):
         resp = client.post('/request/add/', follow_redirects=True,
                 data=dict(
                     url='https://zkillboard.com/kill/37637533/',
                     details='Foo',
                     division=division.id,
                     submit=True))
     self.assertEqual(resp.status_code, 200)
     self.assertIn('37637533', resp.get_data(as_text=True))
     with self.app.test_request_context():
         request = Request.query.get(37637533)
         self.assertIsNotNone(request)