• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

gcivil-nyu-org / INET-Wednesday-Spring2024-Team-2 / 635

01 May 2024 07:07PM UTC coverage: 85.085% (+1.1%) from 83.958%
635

Pull #182

travis-pro

maludee
fix badges
Pull Request #182: add tests

27 of 43 new or added lines in 1 file covered. (62.79%)

441 existing lines in 6 files now uncovered.

1101 of 1294 relevant lines covered (85.09%)

1.35 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

94.57
/users/models.py
1
from django.contrib.auth.models import AbstractUser
2✔
2
from django.db import models
2✔
3

4

5
class CustomUser(AbstractUser):
2✔
6
    USER = "user"
2✔
7
    LANDLORD = "landlord"
2✔
8
    USER_TYPES = [
2✔
9
        (USER, "User"),
10
        (LANDLORD, "Landlord"),
11
    ]
12
    user_type = models.CharField(max_length=20, choices=USER_TYPES, default=USER)
2✔
13
    full_name = models.CharField(max_length=255)
2✔
14
    phone_number = models.CharField(max_length=15)
2✔
15
    city = models.CharField(max_length=100)
2✔
16
    verified = models.BooleanField(default=True)
2✔
17
    s3_doclink = models.CharField(max_length=255, blank=True, null=True)
2✔
18

19
    # user_type = models.CharField(max_length=20, choices=USER_TYPES, default=LANDLORD)
20
    # city = models.CharField(max_length=100)
21
    # full_name = models.CharField(max_length=100)
22
    # phone_number = models.CharField(max_length=100)
23
    # email = models.CharField(max_length=100)
24
    # verified = models.CharField(max_length=100, default="false")
25
    # s3_doclink = models.URLField(max_length=255, blank=True, null=True)
26

27
    def save(self, *args, **kwargs):
2✔
28
        # Check if the instance already exists (i.e., if it's an update rather than a create)
29
        if not self._state.adding:
2✔
30
            # If updating, just save the model as it is, respecting admin changes
31
            super().save(*args, **kwargs)
2✔
32
        else:
33
            # If creating a new instance, apply the user_type logic
34
            if self.user_type == CustomUser.USER:
2✔
UNCOV
35
                self.verified = True
1✔
36
            else:
37
                self.verified = False
2✔
38
            super().save(*args, **kwargs)
2✔
39

40
    # def save(self, *args, **kwargs):
41
    #     if self.user_type == CustomUser.USER:
42
    #         self.verified = True
43
    #     else:
44
    #         self.verified = False
45
    #     super().save(*args, **kwargs)
46

47

48
class Rental_Listings(models.Model):
2✔
49
    address = models.CharField(max_length=255)
2✔
50
    price = models.DecimalField(max_digits=10, decimal_places=2)
2✔
51
    link = models.URLField(max_length=2048, blank=True, null=True)
2✔
52
    sq_ft = models.IntegerField(blank=True, null=True)
2✔
53
    rooms = models.DecimalField(max_digits=5, decimal_places=1, blank=True, null=True)
2✔
54
    beds = models.DecimalField(max_digits=5, decimal_places=1, blank=True, null=True)
2✔
55
    baths = models.DecimalField(max_digits=3, decimal_places=1)
2✔
56
    unit_type = models.CharField(max_length=100, blank=True, null=True)
2✔
57
    neighborhood = models.CharField(max_length=100, blank=True, null=True)
2✔
58
    central_air_conditioning = models.BooleanField(default=False)
2✔
59
    dishwasher = models.BooleanField(default=False)
2✔
60
    doorman = models.BooleanField(default=False)
2✔
61
    elevator = models.BooleanField(default=False)
2✔
62
    furnished = models.BooleanField(default=False)
2✔
63
    parking_available = models.BooleanField(default=False)
2✔
64
    washer_dryer_in_unit = models.BooleanField(default=False)
2✔
65
    A = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
66
    C = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
67
    E = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
68
    B = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
69
    D = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
70
    F = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
71
    M = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
72
    G = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
73
    L = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
74
    J = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
75
    Z = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
76
    N = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
77
    Q = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
78
    R = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
79
    one = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
80
    two = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
81
    three = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
82
    four = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
83
    five = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
84
    six = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
85
    seven = models.DecimalField(max_digits=10, decimal_places=6, blank=True, null=True)
2✔
86
    latitude = models.FloatField(blank=True, null=True)
2✔
87
    longitude = models.FloatField(blank=True, null=True)
2✔
88
    zipcode = models.CharField(max_length=20, blank=True, null=True)
2✔
89
    borough = models.CharField(max_length=100, blank=True, null=True)
2✔
90
    broker_fee = models.DecimalField(
2✔
91
        max_digits=10, decimal_places=2, blank=True, null=True
92
    )
93
    Landlord = models.ForeignKey(
2✔
94
        CustomUser,
95
        on_delete=models.CASCADE,
96
        related_name="rental_listings",
97
        null=True,
98
        blank=True,
99
    )
100
    Submitted_date = models.DateField(blank=True, default="2024-01-03")
2✔
101
    Availability_Date = models.DateField(blank=True, null=True)
2✔
102

103
    def __str__(self):
2✔
104
        return self.address
×
105

106

107
class UsersHpdData(models.Model):
2✔
108
    hpd = models.OneToOneField(
2✔
109
        Rental_Listings,
110
        on_delete=models.CASCADE,
111
        primary_key=True,
112
        related_name="hpd_data",
113
    )
114
    address = models.CharField(max_length=255, blank=True, null=True)
2✔
115
    most_recent_violation_date = models.DateField(blank=True, null=True)
2✔
116
    count_violations = models.BigIntegerField(blank=True, null=True)
2✔
117
    num_complaints = models.BigIntegerField(blank=True, null=True)
2✔
118
    num_noise_complaints = models.BigIntegerField(blank=True, null=True)
2✔
119
    most_recent_complaint = models.DateTimeField(blank=True, null=True)
2✔
120
    ttl_infested_apartments = models.DecimalField(
2✔
121
        max_digits=36, decimal_places=0, blank=True, null=True
122
    )
123
    last_bedbug_date = models.DateField(blank=True, null=True)
2✔
124

125
    class Meta:
2✔
126
        managed = False
2✔
127
        db_table = "users_hpd_data"
2✔
128

129
    def __str__(self):
2✔
130
        return self.address
×
131

132

133
class ExampleTable(models.Model):
2✔
134
    example_column = models.CharField(max_length=255)
2✔
135

136
    def __str__(self):
2✔
137
        return self.example_column
×
138

139

140
class RentalImages(models.Model):
2✔
141
    rental_listing = models.ForeignKey(
2✔
142
        Rental_Listings, on_delete=models.CASCADE, related_name="images"
143
    )
144
    image_url = models.URLField(max_length=2048)
2✔
145

146
    def __str__(self):
2✔
147
        return self.image_url
×
148

149

150
class Favorite(models.Model):
2✔
151
    user = models.ForeignKey(
2✔
152
        CustomUser, on_delete=models.CASCADE, related_name="favorites"
153
    )
154
    listing = models.ForeignKey(
2✔
155
        Rental_Listings, on_delete=models.CASCADE, related_name="favorited_by"
156
    )
157
    created_at = models.DateTimeField(auto_now_add=True)
2✔
158

159
    class Meta:
2✔
160
        unique_together = ("user", "listing")
2✔
161

162
    def _str_(self):
2✔
163
        return f"{self.user.username} - {self.listing.address}"
×
164

165

166
class BuildingInfestationReport(models.Model):
2✔
167
    building_id = models.IntegerField()
2✔
168
    registration_id = models.IntegerField()
2✔
169
    borough = models.CharField(max_length=100)
2✔
170
    house_number = models.CharField(max_length=50)
2✔
171
    street_name = models.CharField(max_length=255)
2✔
172
    postcode = models.CharField(max_length=255)
2✔
173
    dwelling_units = models.CharField(max_length=255)
2✔
174
    infested_dwelling_unit_count = models.CharField(max_length=255)
2✔
175
    eradicated_unit_count = models.CharField(max_length=255)
2✔
176
    reinfested_dwelling_unit_count = models.CharField(max_length=255)
2✔
177
    filing_date = models.DateField()
2✔
178
    filing_period_start_date = models.DateField()
2✔
179
    filing_period_end_date = models.DateField()
2✔
180
    latitude = models.FloatField()
2✔
181
    longitude = models.FloatField()
2✔
182
    community_board = models.CharField(max_length=255)
2✔
183
    council_district = models.CharField(max_length=255)
2✔
184
    census_tract = models.CharField(max_length=50)
2✔
185
    bin = models.CharField(max_length=255)
2✔
186
    bbl = models.CharField(max_length=255)
2✔
187
    nta = models.CharField(max_length=255)
2✔
188

189
    def _str_(self):
2✔
190
        return f"{self.building_id} - {self.street_name}"
×
191

192

193
class ExampleTable1(models.Model):
2✔
194
    example_column = models.CharField(max_length=255)
2✔
195

196
    def _str_(self):
2✔
197
        return self.example_column
×
198

199

200
class BuildingViolation(models.Model):
2✔
201
    violation_id = models.IntegerField(unique=True)
2✔
202
    building_id = models.IntegerField(default=0)
2✔
203
    registration_id = models.CharField(max_length=100, default="")
2✔
204
    boro_id = models.CharField(max_length=100, default="")
2✔
205
    borough = models.CharField(max_length=100, default="")
2✔
206
    house_number = models.CharField(max_length=50, default="")
2✔
207
    low_house_number = models.CharField(max_length=50, default="")
2✔
208
    high_house_number = models.CharField(max_length=50, default="")
2✔
209
    street_name = models.CharField(max_length=255, default="")
2✔
210
    street_code = models.CharField(max_length=100, default="")
2✔
211
    postcode = models.CharField(max_length=100, default="")
2✔
212
    apartment = models.CharField(max_length=100, default="")
2✔
213
    story = models.CharField(max_length=100, default="")
2✔
214
    block = models.CharField(max_length=100, default="")
2✔
215
    # lot = models.CharField(max_length=100, default='')
216
    # Class = models.CharField(max_length=100, default='')
217
    inspection_date = models.DateField(default="2000-01-01")
2✔
218
    approved_date = models.DateField(default="2000-01-01")
2✔
219
    originalcertifybydate = models.DateField(default="2000-01-01")
2✔
220
    originalcorrectbydate = models.DateField(default="2000-01-01")
2✔
221
    # newcertifybydate = models.DateField(default='2000-01-01')
222
    # newcorrectbydate = models.DateField(default='2000-01-01')
223
    # certifieddate = models.DateField(default='2000-01-01')
224
    ordernumber = models.CharField(max_length=100, default="")
2✔
225
    nov_id = models.CharField(max_length=100, default="")
2✔
226
    # nov_description = models.TextField(default='')
227
    nov_issued_date = models.DateField(default="2000-01-01")
2✔
228
    current_status_id = models.CharField(max_length=100, default="")
2✔
229
    current_status = models.CharField(max_length=100, default="")
2✔
230
    # current_status_date = models.DateField(default='2000-01-01')
231
    # nov_type = models.CharField(max_length=100, default='')
232
    # violation_status = models.CharField(max_length=50, default='')
233
    # rent_impairing = models.CharField(max_length=1, default='')
234
    latitude = models.FloatField(default=0.0)
2✔
235
    longitude = models.FloatField(default=0.0)
2✔
236
    community_board = models.CharField(max_length=100, default="")
2✔
237
    council_district = models.CharField(max_length=100, default="")
2✔
238
    census_tract = models.CharField(max_length=100, default="")
2✔
239
    bin = models.CharField(max_length=100, default="")
2✔
240
    bbl = models.CharField(max_length=20, default="")
2✔
241
    # nta = models.CharField(max_length=100, default='')
242

243
    def str(self):
2✔
244
        return f"{self.violation_id} - {self.borough} - {self.street_name}"
×
245

246

247
class ExampleTable3(models.Model):
2✔
248
    example_column = models.CharField(max_length=255)
2✔
249

250
    def str(self):
2✔
251
        return self.example_column
×
252

253

254
class ServiceReport311(models.Model):
2✔
255
    unique_key = models.BigIntegerField(unique=True)
2✔
256
    created_date = models.DateTimeField()
2✔
257
    closed_date = models.DateTimeField(blank=True, null=True)
2✔
258
    agency = models.CharField(max_length=50)
2✔
259
    complaint_type = models.CharField(max_length=255)
2✔
260
    incident_zip = models.CharField(max_length=20, blank=True, null=True)
2✔
261
    incident_address = models.CharField(max_length=255, blank=True, null=True)
2✔
262
    street_name = models.CharField(max_length=255, blank=True, null=True)
2✔
263
    city = models.CharField(max_length=100, blank=True, null=True)
2✔
264
    status = models.CharField(max_length=50)
2✔
265
    due_date = models.DateTimeField(blank=True, null=True)
2✔
266
    resolution_action_updated_date = models.DateTimeField(blank=True, null=True)
2✔
267
    community_board = models.CharField(max_length=50)
2✔
268
    borough = models.CharField(max_length=100)
2✔
269
    park_borough = models.CharField(max_length=100)
2✔
270
    latitude = models.FloatField(blank=True, null=True)
2✔
271
    longitude = models.FloatField(blank=True, null=True)
2✔
272

273
    def _str_(self):
2✔
274
        return f"{self.complaint_type} at {self.incident_address} ({self.borough})"
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc