Skip to content

Commit

Permalink
Merge pull request #5967 from uktrade/bugfix/TET-981-stova-ingestion-…
Browse files Browse the repository at this point in the history
…data

Bugfix/tet 981 stova ingestion data
  • Loading branch information
DeanElliott96 authored Feb 19, 2025
2 parents 7ba24e6 + 83ad352 commit d32f257
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Generated by Django 4.2.17 on 2025-02-19 08:24

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('company_activity', '0028_update_stova_event_fields_to_match_actual'),
]

operations = [
migrations.AlterField(
model_name='stovaattendee',
name='attendee_questions',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='stovaevent',
name='city',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='stovaevent',
name='contact_info',
field=models.TextField(blank=True, default=''),
),
migrations.AlterField(
model_name='stovaevent',
name='country',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='stovaevent',
name='location_country',
field=models.CharField(blank=True, max_length=255, null=True),
),
]
2 changes: 1 addition & 1 deletion datahub/company_activity/models/stova_attendee.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class StovaAttendee(models.Model):
email = models.CharField(max_length=MAX_LENGTH)
first_name = models.CharField(max_length=MAX_LENGTH)
last_name = models.CharField(max_length=MAX_LENGTH)
attendee_questions = models.CharField(max_length=MAX_LENGTH)
attendee_questions = models.CharField(max_length=MAX_LENGTH, blank=True, null=True)

company_name = models.CharField(max_length=MAX_LENGTH)
category = models.CharField(max_length=MAX_LENGTH)
Expand Down
8 changes: 4 additions & 4 deletions datahub/company_activity/models/stova_event.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ class StovaEvent(models.Model):
modified_by = models.CharField(max_length=MAX_LENGTH, blank=True, default='')

client_contact = models.CharField(max_length=MAX_LENGTH, blank=True, default='')
contact_info = models.CharField(max_length=MAX_LENGTH, blank=True, default='')
contact_info = models.TextField(blank=True, default='')

country = models.CharField(max_length=MAX_LENGTH)
city = models.CharField(max_length=MAX_LENGTH)
country = models.CharField(max_length=MAX_LENGTH, blank=True, null=True)
city = models.CharField(max_length=MAX_LENGTH, blank=True, null=True)
state = models.CharField(max_length=MAX_LENGTH)
timezone = models.CharField(max_length=MAX_LENGTH, blank=True, null=True, default='')
url = models.TextField(blank=True, null=True)
Expand All @@ -44,7 +44,7 @@ class StovaEvent(models.Model):
end_date = models.DateTimeField(null=True, blank=True)

location_state = models.CharField(max_length=MAX_LENGTH, blank=True)
location_country = models.CharField(max_length=MAX_LENGTH)
location_country = models.CharField(max_length=MAX_LENGTH, blank=True, null=True)
location_address1 = models.CharField(max_length=MAX_LENGTH)
location_address2 = models.CharField(max_length=MAX_LENGTH, blank=True)
location_address3 = models.CharField(max_length=MAX_LENGTH, blank=True)
Expand Down
6 changes: 6 additions & 0 deletions datahub/company_activity/tasks/ingest_stova_attendees.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,12 @@ def get_or_create_company(values: dict) -> Company | None:
:returns: An existing `Company` if found or a newly created `Company`.
"""
company_name = values['company_name']
if company_name == '' or company_name is None:
logger.info(
f'No company name available, skipping attendee {values["stova_attendee_id"]}',
)
return

company = Company.objects.filter(name__iexact=company_name).first()
if company:
return company
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -527,3 +527,23 @@ def test_stova_attendee_does_not_create_attendee_when_interaction_fails(
task._process_record(data)

assert StovaAttendee.objects.count() == 0

@pytest.mark.django_db
@pytest.mark.parametrize(
'company_name',
(
'',
None,
),
)
def test_get_or_create_company__returns_when_company_name_empty(
self, s3_object_processor, test_file_path, caplog, company_name,
):
"""Tests empty company names are logged and no company is created."""
data = {'stova_attendee_id': 1234, 'company_name': company_name}
ingestion_task = StovaAttendeeIngestionTask(test_file_path, s3_object_processor)

with caplog.at_level(logging.INFO):
company = ingestion_task.get_or_create_company(data)
assert 'No company name available, skipping attendee 1234' in caplog.text
assert company is None

0 comments on commit d32f257

Please sign in to comment.