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

pulibrary / tigerdata-app / 1f9ee909-20b2-467d-b493-b5be4964430d

22 Oct 2025 04:57PM UTC coverage: 91.212%. Remained the same
1f9ee909-20b2-467d-b493-b5be4964430d

push

circleci

web-flow
Fixing flaky tests (#2080)

10 times out of 10 one of these tests would fail for me locally.

Really we just have to look at the page for something new so that we are
sure the controller action has finished before we check for something
that is not waiting.

2740 of 3004 relevant lines covered (91.21%)

755.12 hits per line

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

100.0
/app/models/mediaflux/asset.rb
1
# frozen_string_literal: true
2
module Mediaflux
5✔
3
  class Asset
5✔
4
    attr_accessor :id, :path, :collection, :size
5✔
5

6
    def initialize(id:, name:, collection:, path: nil, last_modified_mf: nil, size: nil)
5✔
7
      @id = id
446✔
8
      @name = name
446✔
9
      @path = path
446✔
10
      @collection = collection
446✔
11
      @size = size
446✔
12
      @last_modified_mf = last_modified_mf
446✔
13
    end
14

15
    def name
5✔
16
      # Mediaflux supports the concept of files without a name and in those cases the
17
      # "name" property might be empty, but the actual name assigned internally by
18
      # Mediaflux (e.g. __asset_id__4665) is still reflected in the path.
19
      if @name == ""
368✔
20
        Pathname.new(path).basename.to_s
332✔
21
      else
22
        @name
36✔
23
      end
24
    end
25

26
    # Returns the path to the asset but without the root collection namespace as part of it.
27
    #
28
    # Example:
29
    #   path        -> "/tigerdata/projectg/folder1/file-abc.txt"
30
    #   path_short  -> "/projectg/folder1/file-abc.txt"
31
    def path_short
5✔
32
      return nil if path.nil?
360✔
33
      if path.starts_with?(Mediaflux::Connection.root_collection_namespace)
360✔
34
        path[Mediaflux::Connection.root_collection_namespace.length..-1]
8✔
35
      else
36
        path
352✔
37
      end
38
    end
39

40
    # Returns the last modified date but using the standard ISO 8601 (https://en.wikipedia.org/wiki/ISO_8601)
41
    def last_modified
5✔
42
      return nil if @last_modified_mf.nil?
358✔
43
      # https://nandovieira.com/working-with-dates-on-ruby-on-rails
44
      # Mediaflux dates are in UTC and look like this "07-Feb-2024 21:48:01"
45
      Object::Time.zone.parse(@last_modified_mf).in_time_zone("America/New_York").iso8601
358✔
46
    end
47

48
    # Returns the path for the asset
49
    # For a collection returns the path_short, but for a file is the dirname of the path_short
50
    #
51
    # Example for a file:
52
    #   path        -> "/tigerdata/projectg/folder1/file-abc.txt"
53
    #   path_short  -> "/projectg/folder1/file-abc.txt"
54
    #   path_only  -> "/projectg/folder1"
55
    # Example for a collection:
56
    #   path        -> "/tigerdata/projectg/folder1"
57
    #   path_short  -> "/projectg/folder1"
58
    #   path_only  -> "/projectg/folder1"
59
    def path_only
5✔
60
      return nil if path.nil?
356✔
61
      if collection
356✔
62
        path_short
2✔
63
      else
64
        p = Pathname.new(path_short)
354✔
65
        p.dirname.to_s
354✔
66
      end
67
    end
68
  end
69
end
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

© 2025 Coveralls, Inc